1_JSON簡介 11:16
json簡介.gif
1. JSON 是什么
JSON统锤,全稱是 JavaScript Object Notation棚赔,即 JavaScript 對象標記法。
JSON 是一種輕量級(Light-Weight)稳吮、基于文本的(Text-Based)、可讀的(Human-Readable)格式。
JSON 的名稱中雖然帶有 JavaScript雀扶,但這是指其語法規(guī)則是參考 JavaScript 對象的,而不是指只能用于 JavaScript 語言肆汹。
JSON 無論對于人愚墓,還是對于機器來說,都是十分便于閱讀和書寫的昂勉,而且相比 XML (另一種常見的數(shù)據(jù)交換格式)浪册,文件更小,因此迅速成為網(wǎng)絡上十分流行的交換格式岗照。
近年來 JavaScript 已經(jīng)成為瀏覽器上事實上的標準語言村象,JavaScript 的風靡笆环,與 JSON 的流行也有密切的關系。
因為 JSON 本身就是參考 JavaScript 對象的規(guī)則定義的厚者,其語法與 JavaScript 定義對象的語法幾乎完全相同躁劣。
JSON 格式的創(chuàng)始人聲稱此格式永遠不升級,這就表示這種格式具有長時間的穩(wěn)定性库菲,10 年前寫的文件,10 年后也能用账忘,沒有任何兼容性問題。
2. JSON 的語法規(guī)則是怎樣的
JSON 的語法規(guī)則十分簡單熙宇,可稱得上“優(yōu)雅完美”鳖擒,總結起來有:
- 數(shù)組(Array)用方括號(“[]”)表示。
- 對象(Object)用大括號(”{}”)表示烫止。
- 名稱/值對(name/value)組合成數(shù)組和對象蒋荚。
- 名稱(name)置于雙引號中,值(value)有字符串烈拒、數(shù)值圆裕、布爾值、null荆几、對象和數(shù)組吓妆。
- 并列的數(shù)據(jù)之間用逗號(“,”)分隔
{
"name": "Geoff Lui",
"age": 26
}
3. JSON 和 XML
JSON 常被拿來與 XML 做比較,因為 JSON 的誕生本來就多多少少要有取代 XML 的意思吨铸。相比 XML行拢,JSON 的優(yōu)勢如下:
- 沒有結束標簽,長度更短诞吱,讀寫更快
- 能夠直接被 JavaScript 解釋器解析
- 可以使用數(shù)組
// JSON:
{
"name": "Geoff Lui",
"age": 26,
"friends": ["Lily", "Lucy", "Gwen"]
}
// XML:
<root>
<name>Geoff Lui</name>
<age>26</age>
<friends>Lily</friends>
<friends>Lucy</friends>
<friends>Gwen</friends>
</root>
4. JSON 解析和生成
在 JavaScript 中,有兩個方法與此相關: JSON.parse 和 JSON.stringify 舟奠。
<script type="text/javascript">
var str = '{"name": "Geoff Lui","age": 26}';
var obj = JSON.parse(str);
console.log(obj);
var jsonstr = JSON.stringify(obj); //stringfy:字符串化
console.log(jsonstr);
</script>
json解析與生成.gif