JSON(JavaScript Object Notation)html
是一種輕量級的數據交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON採用徹底獨立於語言的文本格式。jquery
更多內容請見:http://www.json.org/json
(一)標準格式函數
function JsonFormatting() { var jsonString = '{"Unid":"1","CustomerName":"宋江","Age":"33"}'; var jsonObject = eval('(' + jsonString + ')'); var tt = ''; $.each(jsonObject,function(k, v){ tt += k + ":" + v+"<br/>"; }); $("#divmessage").html(tt); }
這種寫法就是key值用雙引號包圍。這種格式能夠叫作json串。經過eval函數將json串轉換爲json對象。spa
(二)簡寫格式code
function JsonFormatting() { var jsonString = '{Unid:"1",CustomerName:"宋江",Age:"33"}'; var jsonObject = eval('(' + jsonString + ')'); var tt = ''; $.each(jsonObject,function(k, v) { tt += k + ":" + v+"<br/>"; }); $("#divmessage").html(tt); }
這種寫法就是key值省略引號。orm
經過eval函數將json串轉換爲json對象,而後能夠經過兩種方法訪問:htm
(1)點語法對象
Object.Property索引
var jsonString = '{"Unid":"1","CustomerName":"宋江","Age":"33"}'; var jsonObject = eval('(' + jsonString + ')'); alert(jsonObject.CustomerName);
(2)鍵值對索引
Object[key]
var jsonString = '{"Unid":"1","CustomerName":"宋江","Age":"33"}'; var jsonObject = eval('(' + jsonString + ')'); alert(jsonObject["CustomerName"]);
說明一下eval函數,它能夠把一個字符串看成一個JavaScript表達式同樣去執行。
eval函數接收一個參數s,若是s不是字符串,則直接返回s。不然執行s語句。若是s語句執行結果是一個值,則返回此值,不然返回undefined。對象聲明語法「{}」並不能返回一個值,須要用括號括起來纔會返回值。
function EvalTest() { var code1 = '"a" + 2'; //表達式 var code2 = '{a:2}'; //語句 alert(eval(code1)); //輸出a2 alert(eval(code2)); //輸出undefined alert(eval('(' + code2 + ')')); //輸出[object Object] }
對於對象聲明語句來講,僅僅是執行,並不能返回值。爲了返回經常使用的「{}」這樣的對象聲明語句,必須用括號括住,以將其轉換爲表達式,才能返回其值。
爲jquery添加從json串到json對象的轉換方法。
打開庫,找到jQuery.extend({
添加方法
jsonToObject: function(a) { return eval('(' + a + ')'); },
使用以下:
var jsonString = '{"Unid":"1","CustomerName":"宋江","Age":"33"}'; var jsonObject = $.jsonToObject(jsonString); alert(jsonObject["CustomerName"]);
其中jsonString爲json串,而jsonObject爲json對象