1

私は RKObjectMapping に少し慣れていないので、これを理解するのに苦労しています。

myObjects というオブジェクトの配列を持つクラスがあります。このタイプのオブジェクトには、そのクラスにすでにオブジェクト マッピングがあります。次の種類の JSON オブジェクトにマップしたい:

{
  "myObjects": [...]
}

ここで、JSON 配列には、myObjects によって決定される JSON オブジェクトと、既に指定されているオブジェクト マッピングが含まれています。

これを行うには、オブジェクト マッピングを作成するにはどうすればよいですか?

4

2 に答える 2

0

たくさんのいじくり回した後、私はそれを理解しました:

名前付きJSON配列をJSONオブジェクト内にネストする場合は、配列からJSON配列へのオブジェクトマッピングを定義してから、最初のオブジェクトを使用する空のキーパスと関係を使用してJSONオブジェクト全体のマッピングを定義する必要がありますマッピング。

例えば:

RKObjectMapping* visualsMapping = [RKObjectMapping serializationMapping]'
[visualsMapping mapKeyPath:@"visuals" toRelationship:@"Visuals" withMapping:[Visual serializaitonMapping];

RKobjectMapping* serializaionMapping = [RkObjectMapping serializationMapping];
[serializaionMapping mapKeyPath:@"" toRelationship:@"" visualsMapping];

次に、必要なオブジェクトマッピングはserializationMappingです。

于 2013-01-31T17:28:51.837 に答える
0

申し訳ありませんが、あなたの質問を誤解しました。これを行う場合は、JSONKitを使用します。これにより、JSON オブジェクトを作成しNSDictionarysたり、JSON オブジェクトから作成しNSArraysたり、それらから JSON オブジェクトをシリアル化したりすることができます。

プロジェクトに .h/.m を含める場合 (これは Vendor > JSONKit の下の RestKit にも自動的に含まれます)、インポートJSONKit.hしてから呼び出すことができます:

[myArray JSONString];

これにより、シリアル化された JSON オブジェクトの NSString が返されます。他にも、より徹底的な方法がいくつかあります。


元の、間違った答え:

これがあなたが探しているものだと思います:

RKObjectMapping *visualsMapping = [RKObjectMapping mappingForClass:[Visuals class]];
[carMapping mapKeyPath:@"Color" toRelationship:@"color"];
[carMapping mapKeyPath:@"Damage" toRelationship:@"damage"];
...

carMapping = [RKObjectMapping mappingForClass:[Car class]];
[carMapping mapKeyPath:@"Model" toRelationship:@"model"];
[carMapping mapKeyPath:@"Visuals" toRelationship:@"visuals" withMapping:visualsMapping];
...
[carMapping setRootKeyPath:@"myObjects"];

ここでは、他のカスタム オブジェクトの内部に含まれるカスタム オブジェクトに対して作成したり、マッピングを指定せずに属性を直接マッピングしたりできます。

于 2013-01-30T20:38:54.917 に答える