JSON 介紹

admin發表於2019-07-11

本文對JSON做一個總體介紹,語法細節在其他文章進行詳細分析。

JSON是JavaScript Object Notation的縮寫,翻譯成漢語是"JavaScript物件表示法"。

一.JSON特點總結如下:

(1).JSON是一種輕量級資料交換格式,用於資料的傳輸與儲存。

(2).JSON資料是具有一定語法格式的字串。

(3).JSON資料獨立平臺與語言,於是可以在不同程式語言與平臺之間順暢傳輸資料。

(4).JSON具有良好的自我描述性非常容易理解。

簡單程式碼片段如下:

[JavaScript] 純文字檢視 複製程式碼
{
  "webName":"螞蟻部落",
  "url":"softwhy.com",
  "age":5
}

上面是一個簡單JSON字串,具有良好的自我描述性,一看便知資料的用途。

再特別強調一下,JSON格式資料是字串,不要誤認為上面是一個物件直接量。

很多朋友總是將JavaScript物件直接量稱作JSON物件,這是錯誤的,具體參閱是否存在JSON物件一章節。

二.程式碼例項:

我們經常說將一個物件序列化,在JavaScript通常指的就是將一個物件轉換為JSON格式字串。

關於為什麼要將物件序列化,可以參閱JavaScript 物件序列化一章節。

由於隨著軟硬體的升級換代,不再考慮遊覽器相容問題,簡單程式碼如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let ant={
  webName:"螞蟻部落",
  age:5
}
let jsonStr=JSON.stringify(ant);
console.log(jsonStr);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201907/11/170755ya6bp9he0lu6s56w.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

通過JSON.stringify方法可以將一個物件序列化為一個JSON格式字串。

可以看到結果有了明顯的變化,比如屬性名稱被新增了雙引號,具體細節參閱JSON 語法規則一章節。

我們也可以反序列化,將JSON格式字串還原成物件,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let ant={
  webName:"螞蟻部落",
  age:5
}
let jsonStr=JSON.stringify(ant);
console.log(JSON.parse(jsonStr).webName);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201907/11/170837edsmmo0femxymnss.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

通過JSON.parse方法將JSON格式字串反序列化為原來的物件。

關於上述兩個方法的具體用法可以參閱如下兩篇文章:

(1).JSON.parse方法參閱JSON.stringify() 方法一章節。

(2).JSON.parse方法參閱JSON.parse() 方法一章節。

三.總結:

說到底,JSON就是一種資料交換格式,是具有特定語法結構的字串,用於傳輸和儲存資料,

與語言和平臺無關,幾乎每種語言都有解析JSON的庫,JS內建此功能,為跨語言和平臺交換資料提供了便利。