1. 程式人生 > >json字串與json物件的轉換方式

json字串與json物件的轉換方式

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" );