gpt4 book ai didi

objective-c - NSJSONSerialization解析响应数据

转载 作者:行者123 更新时间:2023-12-01 17:45:02 26 4
gpt4 key购买 nike

我创建了WCF服务,该服务对POST操作提供以下响应:

"[{\"Id\":1,\"Name\":\"Michael\"},{\"Id\":2,\"Name\":\"John\"}]"

我对JSONObjectWithData的调用没有返回任何错误,但是我无法枚举结果,我在做什么错呢?
NSError *jsonParsingError = nil;
NSMutableArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers|NSJSONReadingAllowFragments error:&jsonParsingError];

NSLog(@"jsonList: %@", jsonArray);

if(!jsonArray)
{
NSLog(@"Error parsing JSON:%@", jsonParsingError);
}
else
{
// Exception thrown here.
for(NSDictionary *item in jsonArray)
{
NSLog(@"%@", item);
}
}

最佳答案

正如Jeremy指出的那样,您不应该转义JSON数据中的引号。而且,您还引用了返回字符串。这使它成为JSON字符串,而不是对象,因此,在解码它时,您得到的是字符串,而不是可变数组,这就是为什么在尝试快速迭代时会出错的原因……您无法快速遍历字符串。

您的实际JSON应该类似于:[{"Id":1,"Name":"Michael"},{"Id":2,"Name":"John"}]。没有引号,没有逃脱。消除JSON对象周围的引号后,您的应用程序将不再崩溃,但随后您将收到格式错误的数据的JSON反序列化错误(转义符)。

关于objective-c - NSJSONSerialization解析响应数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8650296/

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