一、概述
JSON的全稱是”JavaScript Object Notation”,意思是JavaScript對象表示法,它是一種基於文本,獨立於語言的輕量級數據交換格式。XML也是一種數據交換格式,為什么沒 有選擇XML呢?因為XML雖然可以作為跨平台的數據交換格式,但是在JS(JavaScript的簡寫)中處理XML非常不方便,同時XML標記比數據 多,增加了交換產生的流量,而JSON沒有附加的任何標記,在JS中可作為對象處理,所以我們更傾向於選擇JSON來交換數據。這篇文章主要從以下幾個方 面來說明JSON。
二、JSON的結構
2.1 簡單值
簡單值使用與javascript相同的語法,可以在JSON中表示字符串、數值、布爾值和null
字符串必須使用雙引號表示,不能使用單引號。數值必須以十進制表示,且不能使用NaN和Infinity
[注意]JSON不支持javascript中的特殊值undefined
//合格的簡單值 5 "hello world" true null
//不合格的簡單值 +0x1 'hello world' undefined NaN Infinity
2.2 對象
對象作為一種復雜數據類型,表示的是一組有序的鍵值對兒。而每個鍵值對兒中的值可以是簡單值,也可以是復雜數據類型的值(其中關鍵字是字符串,而值可以是字符串,數值,true,false,null,對象或數組)
與javascript的對象字面量相比,JSON有三個不同的地方
1、JSON沒有變量的概念
2、JSON中,對象的鍵名必須放在雙引號里面
3、因為JSON不是javascript語句,所以沒有末尾的分號
[注意]同一個對象中不應該出現兩個同名屬性
//合格的對象 { "name":"huochai", "age":29, "school":{ "name":"diankeyuan", "location":"beijing" } }
//不合格的對象 { name: "張三", 'age': 32 }//屬性名必須使用雙引號 {};//不需要末尾的分號 { "birthday": new Date('Fri, 26 Aug 2011 07:13:10 GMT'), "getName": function() { return this.name; } } // 不能使用函數和日期對象
2.3 數組
數組也是一種復雜數據類型,表示一組有序的值的列表,可以通過數值索引來訪問其中的值。數組的值也可以是任意類型——簡單值、對象或數組
JSON數組也沒有變量和分號,把數組和對象結合起來,可以構成更復雜的數據集合
[注意]數組或對象最后一個成員的后面,不能加逗號
[
{
key1:value1,
key2:value2
},
{
key3:value3,
key4:value4
}
]
三、JSON詳解
https://www.cnblogs.com/passer00/p/6088925.html
四、FastJson
https://www.cnblogs.com/cdf-opensource-007/p/7106018.html