Json を使用して objc オブジェクトをシリアル化し、サーバーに送信しようとしています。
その同じサーバーは、このオブジェクト タイプの GET で次を送信します。
{
"TypeProperties":[
{"Key":"prop 0","Value":"blah 0"},
{"Key":"prop 1","Value":"blah 1"},
{"Key":"prop 2","Value":"blah 2"},
{"Key":"prop 3","Value":"blah 3"}
],
"ImageURls":[
{"Key":"url 0","Value":"blah 0"},
{"Key":"url 1","Value":"blah 1"},
{"Key":"url 2","Value":"blah 2"},
{"Key":"url 3","Value":"blah 3"}
]
}
SBJsonWriter は、objc で作成した一致するオブジェクト/型に対して次を生成します。
{
"TypeProperties": {
"key 2": "object 2",
"key 1": "object 1",
"key 4": "object 4",
"key 0": "object 0",
"key 3": "object 3"
},
"ImageUrls": {
"key 0": "url 0",
"key 1": "url 1",
"key 2": "url 2"
}
}
これは私がSBJsonWriterを使用している方法です:
SBJsonWriter *writer = [[SBJsonWriter alloc] init];
writer.humanReadable = YES;
NSString* json = [writer stringWithObject:itemToAdd];
シリアル化されるクラスでの proxyForJson の実装を次に示します (SBJsonWriter で必要)。
- (NSDictionary*) proxyForJson
{
return [NSMutableDictionary dictionaryWithObjectsAndKeys:
self.typeProperties, @"TypeProperties",
self.imageUrls, @"ImageUrls",
nil];
}
シリアル化されるクラスには、typeProperties と imageUrls の 2 つのプロパティのみが含まれます (どちらも NSMutableDictionary です)。
ここで、問題: サーバーは (当然のことながら) POST を実行したときに SBJsonWriter によって生成された Json を解析しません。そして質問: サーバーによって提供されたものと一致する Json をどのように生成するのですか (一致する Json がアップロード時に正しく解析されると仮定します)。
助けてくれてありがとう。