基本的轉換為:JSON.parse與JSON.stringify。
但是json數據中含function,則轉換后,function會丟失,如:
var json={ test:'test', login: function(){ alert("login") } }
經JSON.stringify后,login丟失。
var json={ test:'test' }
JSON.parse,結果一樣。
正確處理方法:
// json對象轉換成字符串 var s=JSON.stringify(json, function(key, val) { if (typeof val === 'function') { return val + ''; } return val; }); // json字符串轉換成對象 JSON.parse(s,function(k,v){ if(v.indexOf && v.indexOf('function') > -1){ return eval("(function(){return "+v+" })()") } return v; });
參考1:http://www.cnblogs.com/hust/archive/2012/11/28/2792252.html
參考2:http://msdn.microsoft.com/en-us/library/ie/cc836466(v=vs.94).aspx