JSON,JSON 字串,JSON 資料型別介紹
訂閱 480
JSON
JSON(JavaScript Object Notation)是一種輕量級的資料格式,是 JavaScript 語言的一個子集。JSON 在各種程式設計語言中得到了廣泛支援,並被普遍的運用到各種業務案例。
JSON 支援的資料型別
JSON 支援一些基本的 JavaScript 資料型別,包括數值型別,字串型別,布林型別,空值,陣列,物件。至於更為複雜的資料型別,比如日期時間,或含有運算的運算式,則是不被接受的。
- 數值型別
JSON 中的數值可以是整數或者小數,不能是非數值
NaN,允許采用 JavaScript 中的科學計數法,比如,1.23e+3,-1.23e+5,1.23e-3,其中符號e後的+可以省略。JSON 僅支援十進位數值,你不能像在 JavaScript 中一樣書寫類似於0b1010一樣的二進位數值,或類似於0xA09C一樣的十六進位數值。- 字串型別
JSON 僅支援采用
"括住的字串,不支援使用'或`。字串中可以出現以\開頭的跳脫序列,比如,"姓名\t年齡","喜極而泣:\uD83D\uDE02"。- 布林型別
JSON 中的布林型別與 JavaScript 保持一致,可以是
true或false。- 空值
JSON 中的空值為
null,與 JavaScript 保持一致。- 陣列
JSON 中的陣列與 JavaScript 陣列類似,但其包含的值的資料型別只能是 JSON 所支援的,比如,
["你好!",123,true]。- 物件
JSON 中的物件與 JavaScript 物件類似,但其包含的內容主要通過鍵值組來進行描述,值的資料型別只能是 JSON 所支援的,鍵只能是采用
"括住的字串,比如,{"age":12,"name":"一個好心人"}。
跳脫
想要詳細了解跳脫,你可以檢視跳脫,跳脫字元,跳脫序列介紹一節。
JSON 字串
顧名思義,JSON 字串是指符合 JSON 格式的字串,這些字串可以存在於某個檔案中,或作為程式碼書寫的常值。
JSON 字串與 JavaScript 物件之間的區別
這個問題似乎沒有必要解答,JSON 字串與 JavaScript 物件的區別較為明顯,前者是string型別,後者是object型別,JSON 字串必須嚴格遵守 JSON 的標準,而 JavaScript 物件則比較隨意,其包含的值的資料型別可以不在 JSON 標準內。
值,資料型別
關於常值,你可以檢視值的表示一段。
下面的 JavaScript 常數json儲存了一個 JSON 字串。
const json = '{"id":1234,"name":"小書屋 001 號"}'包含了學生資訊的 JSON 字串,被儲存在檔案students.json中。
[
{ "name": "小小", "age": 12 },
{ "name": "小白", "age": 13 }
]JSON 字串轉換
在支援 JSON 的語言中,一般都存在一些函式或方法,用於將 JSON 字串轉換為某種其他的資料型別,或執行相反的操作。這是比較容易理解的,因為沒人願意直接讀取或寫入字串包含的資料。
JavaScript 提供了parse和stringify兩個方法來進行 JSON 字串的轉換。
// 儲存了植物資訊的 JSON 字串
const plant_json = '{"name":"一棵大樹","height":5}'
// 將 JSON 字串轉換為一個 JavaScript 物件
const plant = JSON.parse(plant_json)
// 修改資訊,並將 JavaScript 物件轉換為 JSON 字串
plant.height = 7
console.log(JSON.stringify(plant)){"name":"一棵大樹","height":7}原始碼
json.js·codebeatme/programming·GitHub
json/students.json·codebeatme/programming·GitHub