无法解析来自谷歌的 json 响应
Posted
技术标签:
【中文标题】无法解析来自谷歌的 json 响应【英文标题】:unable to parse json response from google 【发布时间】:2011-12-09 11:18:39 【问题描述】:我正在尝试解析来自This URL 的 Json 响应。我使用过 SBJsonParser、MTJSON 和另一个解析器,但在这三种情况下我都得到了 NULL。
apiUrlStr = @"http://maps.google.com/maps?output=dragdir&saddr=Delhi&daddr=Mumbai+to:hyderabad";
NSURL* apiUrl = [NSURL URLWithString:apiUrlStr];
NSString *apiResponse = [NSString stringWithContentsOfURL:apiUrl encoding:NSUTF8StringEncoding error:nil];
SBJsonParser *json = [[[SBJsonParser alloc] init] autorelease];
NSDictionary *dictionary = [json objectWithString:apiResponse];
NSLog(@"dictionary=%@", [json objectWithString:apiResponse]);
2011-12-09 16:59:01.226 MapWithRoutes[2523:207] 字典=(null)
请给我一些建议
【问题讨论】:
您的帖子缺少很多重要部分:mattgemmell.com/2008/12/08/what-have-you-tried @rckoenes,我不认为它缺少任何东西。 JSON 无论如何都无法解码。 这就是我的意思。我现在该怎么办?? @rckoenes 这个人几乎什么都试过了。 :) 【参考方案1】:如果检查了您使用 JSONlint.com 提供的 url 并且 JSON 无效,则可以。因此不能被任何库解析。
如果您使用了 JSONkit,您可以在 parse 调用中提供一个 NSError
对象以查看问题所在:
NSError *error = nil;
NSDictionary *dictionary = [apiResponse objectFromJSONStringWithParseOptions:JKParseOptionNone error:&error];
if (!dictionary)
NSLog(@"Error: %@", error);
【讨论】:
第 1 行解析错误: tooltiphtml: " (2,13 -----^ Expecting 'STRING', '' 啊,像 tooltipHtml 这样的 JSON 对象中的键缺少字符串引号。 是的,不是合法的 JSON,因为没有引用对象键。以上是关于无法解析来自谷歌的 json 响应的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中解析来自 Alamofire API 的 JSON 响应?