var myObject = eval('(' + myJSONtext + ')');
eval函数是非常快的。然而,它可以编译和执行任何JavaScript程序,所以会有安全问题。使用eval函数表示当源是可信的和有能力的。它是使用JSON解析器更安全。在XMLHttpRequest的网页应用程序中,通信是只允许相同的起源提供页面,因此它是可信的。但它可能不会有能力。如果服务器在JSON编码是不严谨的,或者如果它不严格验证所有的输入,然后它可以提供无效的JSON文本,可以携带危险的脚本。eval函数将执行脚本,释放其恶意。
为了抵御这种,JSON解析器应该使用。JSON解析器将只认JSON文本,拒绝所有的脚本。在浏览器原生JSON提供了支持,JSON解析器比eval快多了。预计本地JSON支持将包括在未来的ECMAScript标准。
var myObject = JSON.parse(myJSONtext, reviver);
JSON stringifier相反的方向去,转换成JSON文本的JavaScript数据结构。JSON不支持循环数据结构,所以要小心不要把周期性结构的JSON stringifier。
var myJSONText = JSON.stringify(myObject, replacer);
jquery字符串解析json对象
var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );
var obj = $.parseJSON('{"name":"John"}');
alert( obj.name === "John" );
eval函数是非常快的。然而,它可以编译和执行任何JavaScript程序,所以会有安全问题。使用eval函数表示当源是可信的和有能力的。它是使用JSON解析器更安全。在XMLHttpRequest的网页应用程序中,通信是只允许相同的起源提供页面,因此它是可信的。但它可能不会有能力。如果服务器在JSON编码是不严谨的,或者如果它不严格验证所有的输入,然后它可以提供无效的JSON文本,可以携带危险的脚本。eval函数将执行脚本,释放其恶意。
为了抵御这种,JSON解析器应该使用。JSON解析器将只认JSON文本,拒绝所有的脚本。在浏览器原生JSON提供了支持,JSON解析器比eval快多了。预计本地JSON支持将包括在未来的ECMAScript标准。
var myObject = JSON.parse(myJSONtext, reviver);
JSON stringifier相反的方向去,转换成JSON文本的JavaScript数据结构。JSON不支持循环数据结构,所以要小心不要把周期性结构的JSON stringifier。
var myJSONText = JSON.stringify(myObject, replacer);
jquery字符串解析json对象
var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );
var obj = $.parseJSON('{"name":"John"}');
alert( obj.name === "John" );