从JSON中提取数据

时间:2011-12-29 17:27:17

标签: objective-c json cocoa-touch

我有一个简单的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);

1 个答案:

答案 0 :(得分:1)

这可能就是这种情况,因为你有完全无效的JSON(在http://jsonlint.com/测试它)。由于您在JSON中缺少引号,因此元素与标识ID不匹配。所有对象名称/键都必须使用引号。

您很幸运,您的框架正确地解释了您的无效JSON(以某种方式),以便您实际获得数组或字典。因此,NSLog的结果将是正确的。

像这样重写您的JSON以使其正常工作:

{
    "ID": 1,
    "response": "YES"
}

(还要确保jsonArray是NSDictionary