標籤:cer on() 交換 ota space 資料交換 傳回值 程式 pad
什麼是 JSON ?
- JSON 指的是 JavaScript 物件標記法(JavaScript Object Notation)
- JSON 是輕量級的文本資料交換格式
- JSON 獨立於語言 *
- JSON 具有自我描述性,更易理解
* JSON 使用 JavaScript 文法來描述資料對象,但是 JSON 仍然獨立於語言和平台。JSON 解析器和 JSON 庫支援許多不同的程式設計語言
JSON字串:
var str = ‘{ "name": "zwq", "sex": "man" }‘; |
JSON對象:
var obj= { "name": "zwq", "sex": "man" }; |
JavaScript原生解析(json字串-->json對象)
JSON 文字格式設定在文法上與建立 JavaScript 對象的代碼相同。
由於這種相似性,無需解析器,JavaScript 程式能夠使用內建的 eval() 函數和Function對象,用 JSON 資料來產生原生的 JavaScript 對象。
- 1. eval();
var obj=eval("("+str+")");//轉換為json對象 |
- 2. Function對象;
var obj=(new Function("","return "+str))(); //轉換為json對象 |
JSON對象解析
- 1. json字串-->json對象
文法:
JSON.parse(text[, reviver]) |
參數說明:
text:必需, 一個有效 json 字串。
reviver: 可選,一個轉換結果的函數, 將為對象的每個成員調用此函數
傳回值:
返回給定 json 字串轉換後的對象。
執行個體:
- 2. json對象-->json字串
文法:
JSON.stringify(value[, replacer[, space]]) |
參數說明:
value:必需, 一個有效 json 對象。
replacer:可選。用於轉換結果的函數或數組。
如果 replacer 為函數,則 JSON.stringify 將調用該函數,並傳入每個成員的鍵和值。使用傳回值而不是原始值。如果此函數返回 undefined,則排除成員。根對象的鍵是一個Null 字元串:""。
如果 replacer 是一個數組,則僅轉換該數組中具有索引值的成員。成員的轉換順序與鍵在數組中的順序一樣。當 value 參數也為數組時,將忽略 replacer 數組。
space:可選,文本添加縮排、空格和分行符號,如果 space 是一個數字,則傳回值文本在每個層級縮排指定數目的空格,如果 space 大於 10,則文本縮排 10 個空格。space 有可以使用非數字,如:\t。
傳回值:
返回給定 json對象轉換後的字串。
執行個體:
var str=JSON.stringify(obj); |
json轉換工具包
為了方便地處理json資料,json提供了json.js包,:http://www.json.org
- 1. json字串-->json對象
var obj = str.parseJSON(); //由json字串轉換為json對象 |
- 2. json對象-->json字串
var str=obj.toJSONString(); //將json對象轉換為json字串 |
json字串與json對象的相互轉換