json.parse不喜欢谷歌地图建议

时间:2011-03-28 07:23:35

标签: javascript json

想在firefox扩展中使用返回:http://maps.google.de/maps/suggest?q=ham&cp=1&hl=de&gl=de&v=2&json=b作为JSON对象。我试图使用JSON.parse解析它并且它不起作用。

是否有其他方法而不是使用正则表达式将其用作JSON对象?

var xhr_return = JSON.parse(rtoparse);
  

返回:SyntaxError:JSON.parse

我的脚本中的其他json文件没有问题。

3 个答案:

答案 0 :(得分:4)

您使用的网址不属于Google official maps API的一部分,因此可能会发生变更,封锁等情况。你应该真的使用官方API。话虽如此,尽管URL包含json,但结果是YAML,而不是JSON。将JSON参数设置为a(而不是b)以获取JSON结果。

答案 1 :(得分:2)

这不是JSON。与JavaScript对象文字不同,JSON密钥必须用双引号括起来。

示例:

您链接中的数据如下所示:

{suggestion:[{query:"Hamburg" ...

但为了成为有效的JSON,它必须看起来像这样:

{"suggestion":[{"query":"Hamburg" ...

答案 2 :(得分:1)

您提供的url中的Json无效,您可以查看here。因此,由于json无效,JSON.parse抛出异常。

修复json格式并使用JSON.parse解析它。