繁体   English   中英

iPhone无法解析YELP的JSON结果

[英]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。 此时,我已经在键盘上敲打了几个小时,不胜感激。

JSON样本

更新:

我是假人 我没有初始化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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM