JSON 文本格式在語法上與創建 JavaScript 對象的代碼相同。
由於這種相似性,無需解析器,JavaScript 程序能夠使用內建的 eval() 函數,用 JSON 數據來生成原生的 JavaScript 對象。
JSON語法規則:
數據在 名稱/值 對仲
數據由逗號分隔
花括號保存對象
方括號保存數組
JSON 名稱/值 對介紹
"name":"張飛", "age":23
Json的值可以是:
數字(整數或浮點數)
字符串(要包括在雙引號中)
邏輯值(true或false)
數組(在方括號中)
對象(在花括號中)
Json轉javascript對象的方法為:
eval("(" + str + ")");
代碼示例:
<html> <head> <title>Json測試</title> <script src="/Scripts/jquery-1.7.2.min.js" type="text/javascript"></script> <script type="text/javascript"> //基本上,Json返回的要麼是對象,要麼是數組,如果單純返回一個字符串,那麼就沒有必要用Json了,因此 //Json基本就下面這些可,不過要注意雙引號 var str0 = "{employees:'測試'}"; var obj0 = eval("(" + str0 + ")"); alert(obj0.employees); //輸出測試 var str = "{name:'張三',Age:21}"; var obj = eval("(" + str + ")"); document.write(obj.name + obj.Age); //輸出 張三21 alert(obj.name); //別看下面那段Json長,其實是一個對象,屬性employees的值是一個對象數組。和上面的相比,只是name:張三 中的"張三"字符串 變成了對象數組而已 var str2 = '{ "employees" : [' + '{ "firstName":"Bill" , "lastName":"Gates" },' + '{ "firstName":"George" , "lastName":"Bush" },' + '{ "firstName":"Thomas" , "lastName":"Carter" } ]}'; var obj2 = eval("(" + str2 + ")"); alert(obj2.employees[0].firstName); //彈出 Bill var str3 = "[1,2,3,4,5,6]"; //json 數組 var obj3 = eval("(" + str3 + ")"); //輸出 2 alert(obj3[1]); </script> </head> <body> <div id="div1"> </div> </body> </html>
Json與JavaScript對象轉換
JSON轉javascript對象
//Json轉對象1 function JsonToObject(str) { return eval("(" + str + ")"); } //Json轉對象2 function strToJson(str){ var json = (new Function("return " + str))(); return json; } //Json轉對象3 jQuery工具函數 $.parseJSON()
javascript對象轉JSON
//javascript對象轉Json function ObjectToJson(o) { var arr = []; var fmt = function(s) { if (typeof s == 'object' && s != null) return json2str(s); return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s; } for (var i in o) arr.push("'" + i + "':" + fmt(o[i])); return '{' + arr.join(',') + '}'; }
以上就是本文的全部內容,希望對大家有所幫助,謝謝對的支持!