一般json字串轉換為js物件,都使用
var jsonstr="";今天學習jquery原始碼看到一下方法,原來還可以這樣解析json字串:var jsonobj = eval("("+jsonstr+")");
parsejson: function( data )這個方法核心的**就是:// make sure leading/trailing whitespace is removed (ie can't handle it)
data = jquery.trim( data );
// make sure the incoming data is actual json
// logic borrowed from
if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fa-f])/g, "@")
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[ee][+\-]?\d+)?/g, "]")
.replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) else
}
(new function("return " + data))();它使用了function()建構函式。講json字串作為函式執行資料傳入,定義後立即執行該函式,此時這個函式會返回json物件
我做了乙個測試,用這個方法解析json字串的效率要比用eval解析快好幾百倍
var jsonstr ="我用firfox測試結果,用eval解析花費了7234毫秒,而用函式這種方法,用了55毫秒,太神奇了jsonstr = jsonstr.substring(0,jsonstr.length-1);
jsonstr+="}";
var date = new date();
var start = date.gettime()
//var boj = (new function("return "+jsonstr ))();
var boj = eval("("+jsonstr+")");
var date1 = new date();
console.info(date1.gettime()-start);
java物件轉換為json字串
public static void main string args jsonarray jsonarray.fromobject temparry system.out.println jsonarray.tostring 列印出來的結果 a b c list轉換為json listtempli...
將物件轉換為JSON字串
一 引包 com.alibaba fastjson 1.2.31 二 測試方法 將物件轉化為json字串 test public void objecttojson 三 執行結果如下 diffobjectupdaterulesetlist relationobject objectname 電視 p...
DataTable 轉換為 json 字串
話不多說,上 1 執行sql語句 string sql select from student 2 查詢出的資訊datatable型別 datatable dt executedataset sql tables 0 3 使用json方法轉化為json字串 var jsonstring json d...