1. 程式人生 > >JSON語法基礎

JSON語法基礎

首先需要知道,什麼是JSON?

JSON的定義: JavaScript Object Notation(JavaScript 物件表示法),JSON 是儲存和交換文字資訊的語法,獨立於語言。類似 XMLJSON 比 XML 更小、更快,更易解析,具有自我描述性,更易理解的特點。

JSON就是一串字串,只不過元素會使用特定的符號標註。

  • {} 雙括號表示物件

  • [] 中括號表示陣列

  • "" 雙引號內是屬性或值

  • :表示後者是前者的值(這個值可以是字串、數字、也可以是另一個數組或物件)

{"name": "Dcloud"}

可以理解為是一個包含nameDcloud的物件;
[{"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方法可以接受一個匿名函式,陣列中每個元素都會呼叫這個匿名函式,並且講返回結果放在一個數組中。