我有一个 json 集合,我能够完美地解析 1 级深度,但主集合中的每个项目都有一个集合。我不太确定如何访问“项目”以获取子集合,就像我对主集合所做的那样...
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);
警告
强烈建议在假设它们确实是字典、字符串或数组之前检查您加载的对象的类型。否则,您会注意到您的应用程序将崩溃。
关于ios json解析子集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8669926/