gpt4 book ai didi

iphone - 如何使用 JSON-Framework 在 XCode 上检测 JSON 对象/JSON 数组

转载 作者:行者123 更新时间:2023-12-03 18:50:36 25 4
gpt4 key购买 nike

我在 JSON 解析方面遇到一些问题。当我点击 URL 时,我得到如下 JSON 响应:

//JSON 1
{ "data":
{"array":
["3",
{"array":
[
{"id":"1","message":"Hello","sender":"inot"},
{"id":"2","message":"World","sender":"inot"},
{"id":"3","message":"Hi","sender":"marza"}
]
}
]
},
"message":"MSG0001:Success",
"status":"OK"
}

但是如果数据的结果只是1,那么JSON响应是这样的:

//JSON 2
{ "data":
{"array":
["3",
{"array":
{"id":"3","message":"Hi","sender":"marza"}
}
]
},
"message":"MSG0001:Success",
"status":"OK"
}

我实现此代码来获取 id、消息和发件人值,并且在 JSON 1 上工作正常,但在 JSON 2 上出错。我使用 JSON-Framework。问题是如何检测 JSON 响应是对象 ({ }) 还是数组 ([ ]) ??

// Parse the string into JSON
NSDictionary *json = [myString JSONValue];

// Get all object
NSArray *items = [json valueForKeyPath:@"data.array"];
NSArray *array1 = [[items objectAtIndex:1] objectForKey:@"array"];
NSEnumerator *enumerator = [array1 objectEnumerator];
NSDictionary* item;
while (item = (NSDictionary*)[enumerator nextObject]) {
NSLog(@"id = %@",[item objectForKey:@"id"]);
NSLog(@"message = %@",[item objectForKey:@"message"]);
NSLog(@"sender = %@",[item objectForKey:@"sender"]);
}

最佳答案

您可以使用id并检查您获取的对象是否是NSArray或NSDictionary,如下所示:

id item = [json valueForKeyPath:@"data.array"];
if ([item isKindOfClass:[NSArray class]]) {
// item is an array
}
else if ([item isKindOfClass:[NSDictionary class]]) {
// item is a dictionary
}

关于iphone - 如何使用 JSON-Framework 在 XCode 上检测 JSON 对象/JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3276804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com