6.1 JSON 知識背景編程
JSON: JavaScript Object Notation(JavaScript 對象表示法)json
JSON 是存儲和交換文本信息的語法。相似 XML。數組
JSON 比 XML 更小、更快,更易解析。數據結構
JSON 使用 Javascript語法來描述數據對象,可是 JSON 仍然獨立於語言和平臺。JSON 解析器和 JSON 庫支持許多不一樣的編程語言。 目前很是多的動態(PHP,JSP,.NET)編程語言都支持JSON。編程語言
JSON 數據的書寫格式是:名稱/值對。spa
名稱/值對包括字段名稱(在雙引號中),後面寫一個冒號,而後是值:.net
「name」 : 「zhangsan」code |
這很容易理解,等價於這條 JavaScript 語句:orm
Name = 「zhangsan」對象 |
JSON 值能夠是:
值的數據類型圖:
JSON有兩種數據結構:對象和數組。
對象是一個無序的「‘名稱/值’對」集合(A collection of name/value pairs)。不一樣的語言中,它被理解爲對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
一個對象以「{」(左括號)開始,「}」(右括號)結束。每一個「名稱」後跟一個「:」(冒號);「‘名稱/值’ 對」之間使用「,」(逗號)分隔。
JSON 對象在花括號中書寫:
{ "name":"zhangsan" , "age":24 } |
這一點也容易理解,與這條 JavaScript 語句等價:
name = "zhangsan" age = 24 |
參考圖以下:
值的有序列表(An ordered list of values)。在大部分語言中,它被理解爲數組(array)。
JSON 數組在方括號中書寫:
數組可包含多個對象:
{ "people": [ { "namr":"zhangsan" , "age":22 }, { "name":"lisi" , "age":24 }, { "name":"wangwu" , "age":27 } ] } |
在上面的例子中,對象 "employees" 是包含三個對象的數組。每一個對象表明一條關於某人(有姓和名)的記錄。
參考圖以下:
網上有不少JAVA種操做JSON的jar包,這裏介紹一個最多見的jar包:json-lib。
下載地址:http://json-lib.sourceforge.net/
JSONStringer能夠用來快速構建一個JSON格式的文本,並轉換成String,能夠寫入文件;
JSONStringer是JSONWriter的子類;
JSONStringer通常經過object().key().value().key().value().endObject()進行構造;
object() 代表開始一個對象,即添加'{';
endObject() 代表結束一個對象,即添加'}';
array() 代表開始一個數組,即添加一個'[';
endArray() 代表結束一個數組,即添加一個']';
key() 表示添加一個key;
value() 表示添加一個value;