2011-03-28 62 views
2

想在Firefox扩展中使用返回:http://maps.google.de/maps/suggest?q=ham&cp=1&hl=de&gl=de&v=2&json=b作为JSON对象。我试图用JSON.parse解析它,但它不起作用。json.parse不喜欢谷歌地图建议

是否有另一种方式,而不是使用正则表达式来使用它作为JSON对象?在我的脚本工作

var xhr_return = JSON.parse(rtoparse); 

returns: SyntaxError: JSON.parse

其他JSON文件没有问题。

+1

“这没有工作“是**从不**是放弃解决方案的可接受理由。为什么它不工作? – phihag 2011-03-28 07:27:45

+0

@phihag,当然是。如果你有另一种解决方案。 – eyelidlessness 2011-03-28 07:45:25

+0

@eyelidlessness不,因为“它没有工作”,所以没有详细说明,甚至不必与解决方案相关联:它可能包括诸如电源,服务或网络中断等原因。 – phihag 2011-03-28 07:47:54

回答

4

您使用的网址不是谷歌的official maps API的一部分,因此可能会发生更改,堵塞等。你应该真的使用官方的API。这就是说,尽管URL包含json,结果是YAML,而不是JSON。将JSON参数设置为a(而不是b)以获取JSON结果。

+0

thx phihag - 你有任何线索哪些网址具体可以使用从谷歌地图API? – Lukas 2011-03-31 09:00:00

1

Json从url你提供的是无效的,你可以检查它here。所以,由于json无效,引发异常JSON.parse

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

2

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

一个例子:

从链路的数据是这样的:

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

但必须是这样为了有效JSON:

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

不是线索。为了让你再次成为等级而+1:P。 – Matt 2011-03-29 13:21:07

+0

谢谢马特(和其他匿名人士:) :) – Jakob 2011-03-29 15:02:28