2012-02-23 26 views
0

如何在iPhone中解析以下JSON。密钥node_10947可能每次都会更改。如何解析具有动态密钥节点的JSON

任何想法?

{ 
"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,其节点随时动态变化可能会改变???

+0

你是否尝试过使用这个框架http://stig.github.com/json-framework/ 它节省了我很多时间阅读/编写JSON – 2012-02-23 13:37:21

+0

你到底想要达到什么目的?什么让你觉得node_10947应该每次都一样? – 2012-02-23 14:22:19

回答

0

使用Ehab Amer指出的框架。 为了解析您可以使用此代码snippest

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

,其中结果是JSON作为你的。

0

如果有可能为您修改JSON则包括在JSON一个更重要的,这将保持当前关键的价值像以下:

{ “元数据”:{currentKey:“ node_10947}

,并使用该密钥来访问值由node_10947定义。

你可以使用一些FR像JSONKit一样用于解析json。