我有一个简单的JSON字符串,看起来像
(
{
ID = 1;
response = Yes;
}
)
而我的NSDictionary并未提取objectForKey。 jsonArray正确显示。我的代码:
hostStr = [[hostStr stringByAppendingString:post] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *hostURL = [NSURL URLWithString:hostStr];
NSString *jsonString = [[NSString alloc] initWithContentsOfURL:hostURL];
self.jsonArray = [jsonString JSONValue];
[jsonString release];
NSLog(@"%@", jsonArray);
NSDictionary *infoDictionary = [self.jsonArray objectForKey:@"ID"];
NSLog(infoDictionary);
答案 0 :(得分:1)
这可能就是这种情况,因为你有完全无效的JSON(在http://jsonlint.com/测试它)。由于您在JSON中缺少引号,因此元素与标识ID
不匹配。所有对象名称/键都必须使用引号。
您很幸运,您的框架正确地解释了您的无效JSON(以某种方式),以便您实际获得数组或字典。因此,NSLog
的结果将是正确的。
像这样重写您的JSON以使其正常工作:
{
"ID": 1,
"response": "YES"
}
(还要确保jsonArray是NSDictionary
)