JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。人類很容易讀寫。機器很容易解析和生成。它基於 JavaScript編程語言的一部分, 標準ECMA-262第3版 - 1999年12月。JSON是一種完全獨立於語言的文本格式,但使用C語言系列程序員熟悉的約定,包括C,C ++,C#,Java,JavaScript,Perl,Python等等。這些屬性使JSON成爲理想的數據交換語言。
JSON 語法是 JavaScript 對象表示法語法的子集。
數據在名稱/值對中、數據由逗號分隔、花括號保存對象、方括號保存數組
JSON 值可以是:數字(整數或浮點數)、字符串(在雙引號中)、邏輯值(true 或 false)、數組(在方括號中)、對象(在花括號中)、null
JSON - 轉換爲 JavaScript 對象
JSON 文本格式在語法上與創建 JavaScript 對象的代碼相同。
由於這種相似性,無需解析器,JavaScript 程序能夠使用內建的 eval() 函數,用 JSON 數據來生成原生的 JavaScript 對象。
<script type="text/javascript">
var JSONObject= {
"name":"Bill Gates",
"street":"Fifth Avenue New York 666",
"age":56,
"phone":"555 1234567"};
document.getElementById("jname").innerHTML=JSONObject.name
document.getElementById("jage").innerHTML=JSONObject.age
document.getElementById("jstreet").innerHTML=JSONObject.street
document.getElementById("jphone").innerHTML=JSONObject.phone
</script>
**JSON 對象 **
Object
{ "firstName":"John" , "lastName":"Doe" }
等價於
firstName = "John"
lastName = "Doe"
JSON 數組
Array
{"employees":
[{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }]}
JSON 使用 JavaScript 語法
var employees =
[{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }];
將JSON轉換成數組
function jsonToArray(obj){
var r = {key:[],value:[]};
for(var k in obj){
if(!obj.hasOwnProperty(k)){
continue;
}
r.key.push(k);
r.value.push(obj[k]);
}
return r;
}
JSON 實例 - 來自字符串的對象
創建包含 JSON 語法的 JavaScript 字符串:
var txt = '{ "employees" : [' +
'{ "firstName":"Bill" , "lastName":"Gates" },' +
'{ "firstName":"George" , "lastName":"Bush" },' +
'{ "firstName":"Thomas" , "lastName":"Carter" } ]}';
eval() 函數使用的是 JavaScript 編譯器,可解析 JSON 文本,然後生成 JavaScript 對象。
var obj = eval ("(" + txt + ")");
複雜類型json
{
"name":"小強",
"age":16,
"msg":["a","b"],
"regex": "^http://.*"
};
JSON.parse是將json格式的字符串轉換成json對象。
var str ='{"name":"小強","age":16,"msg":["a","b"],"regex": "^http://.*"}';
var json = JSON.parse(str);
console.log("name:" + json.name);
console.log("msgLen:" + json.msg.length);
JSON.stringify是將json對象轉換成json格式的字符串。
var json = {"name":"小強","age":16,"msg":["a","b"],"regex": "^http://.*"};
var str = JSON.stringify(json);
console.log("json:" + str);
console.log("jsonLen:" + str.length);