为什么JSON解析是必要的?

时间:2011-11-03 08:19:28

标签: jquery json parsing

如果我有一个JSON数组,我正在从服务器中恢复,我想用它(例如)进行自动完成 - 我可以创建一个JavaScript数组,并使用一个循环将JSON值放入数组中然后将其用于我的自动填充。

那是不是真的错了?

谢谢!

4 个答案:

答案 0 :(得分:2)

最初JSON的基本原理之一就是你能做到:

var object = eval(string);

让JS解释器直接进行解析(参见http://www.json.org/js.html

然而,其缺点是恶意服务器可能在该字符串中包含真正的JS代码,然后您的浏览器会将其解释。

因此,您总是使用JSON.parse来过滤掉恶意代码,或者如果不可用,则包括维护良好的兼容性功能来执行相同的工作。

答案 1 :(得分:1)

您从服务器收到的响应将是一个字符串,这对于进行循环不是很有用。

我假设您希望使用split或regex来自行解析JSON。 这很好,实际上比评估传入的数据更安全 - 并且比任务的大多数标准正则表达式更快。

然而,它失去了以JS理解的格式传入数据的优点,并且您可能会错过理论上可能被利用的内容。

在Firefox 3.1中,JSON parsing is native and safe。一旦成为标准,使用自己的解析器就没有任何好处。到那时,它是一个权衡问题 - 你需要投入多少工作才能获得风险和收益。

答案 2 :(得分:1)

JSON解析器还可以确保数据是有效的JSON,从而确保恶意代码无法注入您的数据,并在客户端上执行。

答案 3 :(得分:0)

你可以自己做,但为什么?一个json解析器就是这么做的。