他是被JavaScript的物件實體語法啟發的,所以全命叫做JavaScript Object notation。故事是這樣的,前陣子被PM要求調整五年前的專案,我翻了檔案卻看見大概是這樣的格式:
<object>
<food>rice</food>
<name>fired rice</name>
</object>
因為看不懂,然後我就把檔案關掉了
看到了副檔名是XML,而這就是XML的資料傳輸格式
伺服器會得到這些資訊,並且解析它,但是這之中有很多不必要的符號,讓資料變的很龐大,只是傳送了一點資料就要傳送屬性名稱兩次(開頭和結尾)且不夠簡便,所以現在大多用JSON格式,因為這是傳輸資料的好格式,像是以下範例:
const food = {
kind: 'rice',
name: 'fired rice'
}
JSON並不是JavaScript的一部分,JS可以解析它,所以有一些JS內建的功能可以轉換,像是讓物件變成JSONconsole.log(JSON.stringify(food));
將物件轉換為JSON字串{"kind":"rice","name":"fired rice"}
相反過來則是:將JSON格式轉成物件(物件實體語法)
var json = JSON.parse('{'"kind":"rice","name":"fired rice"'}')
console.log(json)
//{kind: "rice", name: "fired rice"}
JavaScript可以在這兩者間轉換的功能