嵌套的JSON NSJSONseralization

时间:2012-12-13 15:12:31

标签: objective-c json nsjsonserialization

我正在努力解决以下问题:

我有一个返回嵌套JSON片段的API。 (我使用NSJSONSeralization来解析它)

例如:

 { "thing" = 1,
   "Other thing" = 2,
   "ParentFromList": [{
   "IT" = 3,
   "SecondIT" = 4
 }

我如何使用IT及其次?

我试过了:

  NSDictionary *thingy = [[jsonOutput objectForKey:@"ParentFromList"] ObjectForKey:@"IT"];

JsonOutput也是一个nsdictionary。 但在运行之后,它失败了:

  Unrecognized Selector send to instance.

我不知道如何解决这个问题,请帮助。

1 个答案:

答案 0 :(得分:1)

对于您的数据,最外面的对象是NSDictionary实例。键 ParentFromList 的值是一个数组,即NSArray实例(注意括号)。数组第一个元素包含另一个字典实例(注意花括号)。

此外,它不是ObjectForKey:而是objectForKey:(案件很重要)。

所以你可能想写:

NSDictionary *thingy = [ [ [jsonOutput objectForKey: @"ParentFromList"]
                         objectAtIndex: 0]
                       objectForKey: @"IT"];

BTW:您的示例JSON数据既不完整又不是JSON格式(它是Apple的属性列表格式)。

正确完整的JSON表示形式为:

{
    "thing": 1,
    "Other thing": 2,
    "ParentFromList": [
        {
            "IT": 3,
            "SecondIT": 4
        }
    ]
 }