JSON語法基礎
阿新 • • 發佈:2018-12-14
首先需要知道,什麼是JSON?
JSON的定義: JavaScript Object Notation
(JavaScript 物件表示法),JSON
是儲存和交換文字資訊的語法,獨立於語言。類似 XML
。JSON
比 XML
更小、更快,更易解析,具有自我描述性,更易理解的特點。
JSON
就是一串字串,只不過元素會使用特定的符號標註。
-
{} 雙括號表示物件
-
[] 中括號表示陣列
-
"" 雙引號內是屬性或值
-
:表示後者是前者的值(這個值可以是字串、數字、也可以是另一個數組或物件)
{"name": "Dcloud"}
name
為Dcloud
的物件;[{"name": "mui"},{"name": "html5+"}]
就表示包含兩個物件的陣列。
通過JavaScript
,您可以建立一個物件陣列,並像這樣進行賦值:
var employees = [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName": "Jones" }
];
可以像這樣訪問 JavaScript 物件陣列中的第一項:employees[0].lastName;
返回的內容是:
Doe
可以像這樣修改資料:
employees[0].firstName = "Jonatan";
JSON.stringify和JSON.parse
這裡需要特別說明的是兩個非常有用的方法:JSON.stringify和JSON.parse。我們可以通過JSON.stringify將json物件轉成json字串,方便用alert,console.log打印出來,可以方便的檢視json物件內容。反之我們可以通過JSON.parse將json字串轉成json物件以便可以方便對json物件取值。例:
// 場景1 var data = { name: 'jiaonizuoren', age: 23 } console.log(typeof data); // "object" console.log(JSON.stringify(data)) // "{"name":"jiaonizuoren","age":23}" // 場景2 var str = '{"name":"jiaonizuoren","age":23}'; console.log(typeof str) // "string" console.log(JSON.parse(str).name) // "jiaonizuoren"
上面的例子列舉了兩種應用場景,大家根據自己的情況合適的選取正確的方法。
運算子[ ] 和 .
[ ]可以用於陣列和物件取值,陣列中按下邊取值。
var array=["one","two","three","four"];
array[0];
物件屬性取值時,當我們不知道屬性名或屬性名本身包含點(.)的鍵,應當使用[ ]。
for(var key in obj){
console.log(key + ":" + obj[key]);
}
var obj={
id:"obj",
"self.ref":ref
}
console.log(obj["self.ref"]);
.運算子的左邊為一個物件,右邊為屬性名。如:obj.id
可以動態訪問屬性:
var key="property";
console.log(key); //property
var obj={
property:"hello world"
}
console.log(obj[key]); //hello world
陣列的map方法:
var array=[1,2,3,4,5];
array.map(function(item){
return item*2;
});
陣列map
方法可以接受一個匿名函式,陣列中每個元素都會呼叫這個匿名函式,並且講返回結果放在一個數組中。