我有一个json集合,我能够完美地解析1级深度,但主集合中的每个项目都有一个集合。我不太确定如何访问'item'来获取子集合,就像我对主集合一样...
NSString *response = [request responseString];
NSDictionary *json = [response JSONValue];
NSArray *items = [json valueForKeyPath:@"item"];
for (id item in items)
{
mainObject.name = [item objectForKey:@"name"]; //this works fine
// How do I get sub collection from item?
}
一些json:
{"item":
{
"available_at" : null,
"created_at" : "2011-12-09T19:52:23Z",
"lo_id" : 30,
"id" : 24,
"merchant_id" : 1,
"order_id" : 25,
"reach_local_link" : null,
"status" : null,
"token" : "12-258847891-1",
"updated_at" : "2011-12-09T19:52:23Z",
"url" : "api/dir/v1/item/12-258847891-1/print",
"subitem1" :
{
"area" : "local",
"broker_id" : "",
"broker_id" : null,
"category" :
{
"category":....
在示例中,可能有多个子项,如subitem1。我需要得到那些的集合,并在当前的循环中有另一个for循环。
答案 0 :(得分:0)
item
将只是一个字典或数组。例如,您应该能够这样做:
NSDictionary *subitem1 = [item objectForKey:@"subitem1"];
那里只是一个NSDictionary
,所以你可以把它作为一个。
我真的建议记录JSON对象的Objective-C表示,这样可以更容易地使用它:
NSLog(@"%@", json);
警告强>
强烈建议在假设它们确实是字典,字符串或数组之前检查您加载的对象的类型。如果不是,您会注意到您的应用程序将崩溃。