0

Restkit のオブジェクト マッピング機能を教えるソリューションと優れたチュートリアルを見つけるのに苦労しました。ただし、GITHUB リポジトリのチュートリアルは非常に不明確です。

これは、 http://baseURL.com/contacts/への GET 呼び出しを行って受け取った JSON です。

他のチュートリアルと比較して、私の JSON には "ACContact" のようなルート キーパスがないことに注意してください。

[{
 "status":"ACTIVE",
 "fax":"555-1212",
"addresses":[
  {
     "line1":"6 Main Street",
     "line2":"",
     "city":"Acton"
  },
  {
     ...
  }
....(other stuff)...
}
...more similar JSONs for the other contacts...
]

子オブジェクト Addresses の配列をマップする方法がまだわからないため、クラスの他の通常のプロパティをマップしようとしています。

RKObjectManager *manager = [RKObjectManager objectManagerWithBaseURL: some_URL] ;

[[manager client] setValue:@"true" forHTTPHeaderField:@"SSLClientCipher"] ;
[[manager client] setValue:@"accept" forHTTPHeaderField:@"application/json"] ;

RKObjectMapping * contactMap = [RKObjectMapping mappingForClass:[ACContact class]] ;
[contactMap mapKeyPath:@"status" toAttribute:@"status"] ;
[contactMap mapKeyPath:@"fax" toAttribute:@"fax"] ;

[[manager mappingProvider] addObjectMapping:contactMap] ;

[manager loadObjectsAtResourcePath:@"/contacts" delegate:self] ;

これは私が後で受け取ったエラーです:

restkit.object_mapping:RKObjectMapper.m:81 マッピング エラーの追加: keyPath のオブジェクト マッピングが見つかりませんでした: ''

restkit.network:RKObjectLoader.m:222 マッピング中にエラーが発生しました: keyPath のオブジェクト マッピングが見つかりませんでした: ''

1) 誰がここで何がうまくいかないのか教えてもらえますか? 他のチュートリアルと比較して、私の JSON には "ACContact" のようなルート キーパスがないことに注意してください。

JSON の status や fax などの単純な属性の場合、値を Contact クラスのプロパティにマッピングする規則はありますか。

2) さらに、リレーションシップ マッピングを使用して子オブジェクトのアドレスをマップできることはわかっていますが、NSMutableArray を宣言して連絡先内にアドレスのリストを格納する場合はどうすればよいでしょうか。

3) すべて問題なければ、複数の連絡先の JSON 全体を解析するときに連絡先のリストを作成するにはどうすればよいですか?

お時間をいただきありがとうございます。ブライアン

4

1 に答える 1

0

rootkeypath を使用せずに JSON にマッピングするには、use を設定します。

[self.manager.mappingProvider setObjectMapping:self.contactMap forResourcePathPattern:@"/contacts"] ;

ただし、RootKeyPath のないオブジェクトのシリアル化マッピングを作成する方法がないため、POST を実行できないという問題があります。

于 2012-08-12T18:04:54.220 に答える