如何解析具有动态密钥节点的JSON

时间:2012-02-23 13:34:16

标签: iphone objective-c ios json parsing

如何在iPhone中解析以下JSON。密钥节点_10947可以每次改变。

任何想法?

{
"metadata": {
    "node_10947": {
        "nodeID": "10947",
        "objectID": "11121",
        "name": "Abc",
        "classIdentifier": "folder",
        "node_10948": {
            "nodeID": "10948",
            "objectID": "11122",
            "name": "Abc_A",
            "classIdentifier": "tag"
        },
        "node_10951": {
            "nodeID": "10951",
            "objectID": "11123",
            "name": "Abc_b",
            "classIdentifier": "tag"
        },
        "node_10952": {
            "nodeID": "10952",
            "objectID": "11125",
            "name": "Abc_c ",
            "classIdentifier": "tag"
        }
    },
    "node_170": {
        "nodeID": "170",
        "objectID": "196",
        "name": "XYZ",
        "classIdentifier": "folder",
        "node_179": {
            "nodeID": "179",
            "objectID": "206",
            "name": "XYZ_a",
            "classIdentifier": "tag"
        },
        "node_180": {
            "nodeID": "180",
            "objectID": "207",
            "name": "XYZ_b",
            "classIdentifier": "tag"
        },
        "node_182": {
            "nodeID": "182",
            "objectID": "209",
            "name": "XYZ_c",
            "classIdentifier": "tag"
        }
    }
}

}

我有上面的json和关键节点可能随时改变请建议我如何解析其节点随时动态变化的json ???

2 个答案:

答案 0 :(得分:0)

使用Ehab Amer指出的框架。 对于解析,您可以使用此代码snippest

SBJsonParser *sbjasonObj=[[[SBJsonParser alloc]init] autorelease];
NSMutableDictionary *categoriesContainer = [[NSMutableDictionary alloc]initWithDictionary:[sbjasonObj objectWithString:result]];

其中结果是JSON作为您的。

答案 1 :(得分:0)

如果你可以修改那个json,那么在json中包含一个更多的键,它将保存当前键的值,如下所示:

  
    

{       “metadata”:{currentKey:“node_10947}

  

使用该密钥访问node_10947定义的值。

你可以使用像JSONKit这样的框架来解析json。