[英]iPhone unable to parse JSON results from YELP
我正在尝试从yelp搜索结果中解析经过验证的JSON。
这可以按预期正确吐出json(在模拟器浏览器和我自己的容器中确认)。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
NSString *dump = [[[NSString alloc] initWithData: data encoding:NSUTF8StringEncoding] autorelease];
NSLog(@"Did Recieve data: %@", dump);
[JSONData appendData:data];
}
但是,当我的连接加载完成时,我很难提取结果并解析数据:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"Connection Did Finish Loading");
NSError *error = nil;
id cureLocations = [[CJSONDeserializer deserializer] deserializeAsDictionary:JSONData error:&error];
[JSONData release];
NSLog(@"Connection finished loading: %@", error);
}
我得到:连接加载完成:错误域= CJSONDeserializerErrorDomain代码= -11“操作无法完成。(CJSONDeserializerErrorDomain错误-11。)”
我从SBJSON切换到TouchJSON,因为我也无法从该框架中提取它。 我尝试将其加载到Dictionary和Arrays中,结果为null。 此时,我已经在键盘上敲打了几个小时,不胜感激。
我是假人 我没有初始化JSONData。 请接受浪费您的时间表示歉意,并感谢您的建议。
SBJSON是一个相当不错的解析器。 如果它不解析您的输入,您可能会认为是因为输入确实很糟糕。 如果TouchJSON也未解析,则输入肯定是错误的。 因此,与您有关的JSONData
对象有些不JSONData
。
我建议您使用connectionDidFinishLoading
方法将JSON数据打印到控制台,然后尝试重新验证它。 查看要传递给CJSON的数据对象中的实际内容。
gh,在进一步审查了应用程序之后,我似乎急着将样本复制到该项目中,却忘记了初始化JSONData:
self.JSONData = [[[NSMutableData alloc] init]autorelease];
然后,我更新了didReceiveData方法:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[[self JSONData] appendData:data];
}
现在一切都按预期进行。 这是我第二次遇到此错误。 我想我一直期望调试器来接它。 感谢大家的时间和帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.