如果我有一个JSON数组,我从服务器中收集,并且我想使用它(例如)进行自动完成 - 我可以创建一个JavaScript数组,然后使用循环将JSON值放入数组中然后将其用于我的自动完成。为什么需要JSON解析?
那是真的吗?
谢谢!
如果我有一个JSON数组,我从服务器中收集,并且我想使用它(例如)进行自动完成 - 我可以创建一个JavaScript数组,然后使用循环将JSON值放入数组中然后将其用于我的自动完成。为什么需要JSON解析?
那是真的吗?
谢谢!
您从服务器收到的响应将是一个字符串,这对于进行循环来说并不是非常有用。
我假设你希望使用split或regex来自己解析JSON。 这很好,实际上比评估传入数据更安全 - 并且比任务的大多数标准正则表达式更快。
但是,它失去了以JS理解的格式输入数据的优点,并且您可能会错过理论上可能被利用的某些内容。
在Firefox 3.1,JSON parsing is native and safe中。一旦成为标准,使用自己的解析器就没有任何好处。直到那时,这是一个折衷的问题 - 您需要投入多少工作才能确定风险和收益。
你可以自己动手,但为什么?一个json解析器就是这样做的。
最初为JSON的理由的一部分,你可以这样做:
var object = eval(string);
,并有JS解释直接做了分析(见http://www.json.org/js.html)
但是与缺点是邪恶服务器可以在该字符串中包含真正的JS代码,然后浏览器会解释该代码。
因此,您应该总是使用JSON.parse
这将过滤出恶意代码,或者如果它不可用包括一个良好的维护兼容性功能来做同样的工作。
谢谢,现在对我很清楚。 – Alon
JSON解析器还可以确保数据是有效的JSON,从而确保恶意代码无法注入到数据中,并在客户端执行。
如果您已正确地从脚本中格式化JSON。你可以简单地在你的Javascript中使用JSON解析来获得数组。那里没有任何需要。 – OptimusCrime