作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在我的应用程序中收到了一些 json 数据:
NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonResponse options:NSJSONReadingAllowFragments error:nil];
NSLog(@"json :%@", json);
记录:
json :{
"email" : "/apex/emailAttachment?documentId=00PZ0000000zAgSMAU&recipientId=003Z000000XzHmJIAV&relatedObjectId=a09Z00000036kc8IAA&subject=Pricing+Comparison"
}
这正是我想要的。
但是,当我去阅读电子邮件的值(value)时,做
[json objectForKey:@"email"]
我收到无效参数异常:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSDictionary initWithDictionary:copyItems:]: dictionary argument is not an NSDictionary'
我如何读取这个值?
最佳答案
您的服务器似乎发送了“嵌套的 JSON”:jsonResponse
是一个 JSON string(不是字典)。该字符串的值同样是表示字典的 JSON 数据。
在这种情况下,您必须对 JSON 进行两次反序列化:
NSString *jsonString = [NSJSONSerialization JSONObjectWithData:jsonResponse options:NSJSONReadingAllowFragments error:nil];
NSData *innerJson = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:innerJson options:0 error:nil];
NSString *email = jsonDict[@"email"];
关于ios - 解析 NSJSONReadingAllowFragments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19526142/
我在我的应用程序中收到了一些 json 数据: NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonResp
我是一名优秀的程序员,十分优秀!