我在使用 NSJSONSerialization 解析 YELP1 Json 并使用 NSDictionary 访问数据方面做得很好。但是,我发现响应中存在不一致之处:
一些键被 包围"
,主要是包含一个_
部分回复:
(
{
address1 = "xxx";
address2 = "";
address3 = "";
"avg_rating" = 5;
city = "Chicago";
country = USA;
"country_code" = US;
从...获取
[[NSString alloc] initWithData:self.recievedData encoding:NSUTF8StringEncoding];
这与括号中没有键的文档不一致。 http://www.yelp.com/developers/documentation/search_api
显然,括号表示键值中的“_”出于某种原因,而不是值的类型。括号包围每个包含_
, 的键的值可以是字符串或int或其他。
访问诸如 avg_rating 之类的字段
[dict objectForKey:@"avg_rating"];
失败了NSInvalidArgumentException
虽然[dict objectForKey:@"country"];
会工作。
因此,我认为返回的值不是 NSDictionary / NSLog 问题,而是提交给 dict 对象的键有问题。或者,也许在 JSON 解析期间?但是,请用一段工作代码证明我错了...... :)
有任何想法吗?谢谢,埃尔
编辑:已编辑,因为问题现在可能已经足够清楚了。
Edit2:实际上,这里返回的是一个 NSNumber。对这些 "" 感到困惑。