JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式救湖。用來序列化對象扣溺、數(shù)組熊经、數(shù)值邓线、字符串抵乓、布爾值和 null 当纱。JSON 不支持 JavaScript 中的特殊值 undefined韭赘、symbol揍愁、變量拾氓、函數(shù)冯挎、對象實(shí)例。
簡單值
簡單值:表示字符串咙鞍、數(shù)值房官、布爾值和 null。
// 有效的JSON數(shù)據(jù)
5
"Hello World"
JavaScript 字符串與 JSON 字符串的最大區(qū)別在于续滋,JSON 字符串必須使用雙引號(單引號會導(dǎo)致語法錯(cuò)誤)翰守。
對象
JSON 中的對象與 JavaScript 字面量稍微有一些不同。對象作為一種復(fù)雜數(shù)據(jù)類型疲酌,表示的是一組無序的鍵值對蜡峰。
// JavaScript
var object = {
"name": "Jake",
"age": 26
};
// JSON
{
"name": "Jake",
"age": 26
}
與 JavaScript 的對象字面量相比,JSON 對象有兩個(gè)地方不一樣朗恳。首先湿颅,沒有聲明變量( JSON 中沒有變量的概念)。其次粥诫,沒有末尾的分號油航。JSON 中對象的屬性必須加雙引號,屬性的值可以是簡單值,也可以是復(fù)雜類型值怀浆。
數(shù)組
JSON 中第二種復(fù)雜數(shù)據(jù)類型是數(shù)組谊囚。
// JavaScript
var array = [25,"hi",true];
// JSON
[25,"hi",true]
方法
JSON 對象有兩個(gè)方法:stringify() 和 parse() 。
stringify() 方法
JSON.stringify() 方法將一個(gè) JavaScript 值轉(zhuǎn)換為一個(gè) JSON 字符串执赡。
JSON.stringify({}); // '{}'
JSON.stringify(true); // 'true'
JSON.stringify("foo"); // '"foo"'
JSON.stringify([1, "false", false]); // '[1,"false",false]'
JSON.stringify({ x: 5 }); // '{"x":5}'
JSON.stringify({x: 5, y: 6}) // '{"x":5,"y":6}'
parse() 方法
JSON.parse() 方法把一個(gè) JSON 字符串解析為原生 JavaScript 值镰踏。
JSON.parse('{}'); // {}
JSON.parse('true'); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null'); // null