ios json解析子集合
我有一个json集合我能够完全精细地解析1级深度,但主集合中的每个项目都有一个集合。我不太知道如何访问“项”,让子集就像我与主要收集没有...ios json解析子集合
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循环。
item
只是一个字典或数组,如果它是JSON对象中的一个。例如,你应该能够做到这一点:
NSDictionary *subitem1 = [item objectForKey:@"subitem1"];
它只是在那里NSDictionary
,所以你可以使用它作为一个。
我真的建议登录您的JSON对象的Objective-C的表示,它可以更容易地使用它:
NSLog(@"%@", json);
警告
我们强烈建议您检查对象的类型,你在假设它们确实是字典,字符串或数组之前加载。如果他们不是,你会注意到你的应用程序将会崩溃。
是的,我确实玩过,并计算出如何将subitem1加载到字典中,但只给出了subitem1中所有项的键/值对。我需要的是subitem1的数组。是的,我做NSLog的所有东西...我只是简化了我的示例,以便于阅读 – Jesse 2011-12-29 16:22:16
您可以遍历NSDictionary的键:'for(NSString * key in subitem1)NSLog(@“%@:%@”, key,[subitem1 objectForKey:key]);' – 2011-12-29 16:23:14
实际上,subitem1实际上是子项目,每个子项目都是“子项目”。所以就像我有一个NSArray项目一样,我需要一个NSArray的子项目 – Jesse 2011-12-29 16:23:36
包含一点你的JSON看起来像 – Sam 2011-12-29 15:54:44
包括一些json – Jesse 2011-12-29 16:14:49