1. 程式人生 > >JSON的互動協議(前後端分離)

JSON的互動協議(前後端分離)

JSON是什麼?

JSON ( JavaScript Object Notation) ,是一種資料互動格式。

為什麼有這個技術?

Json之前,大家都用 XML 傳遞資料。XML 是一種純文字格式,所以適合在網路上交換資料,但是 XML 格式比較複雜,終於道格拉斯·克羅克福特(Douglas Crockford)發明了JSON 這種超輕量級的資料交換格式。

JSON 如何使用?

- 資料格式

JSON 實際上是 JavaScript 的一個子集,所以JSON 的資料格式和 JavaScript 是對應的:

- number => JS number 
- boolean => JS boolean
- string => JS string //
- null => JS null 
- array => JS Array 的表達方式 []
- object => JS {} 表示式

   

- 注意事項

    JSON 規定字符集是UTF-8,字串必須使用"",Object 的鍵也必須使用""
    陣列或物件的最後一個成員,不能加逗號。

JS 內建兩個Json方法:

JSON.stringify( {} , [ ] , "   ")
//引數一 :要序列化的資料(object)
//引數二 :控制物件的鍵值,只想輸出指定的屬性,傳入一個數組
//引數三 :序列化後,列印輸出的格式(一個Tab ,可以更直觀檢視json)

任何把 JavaScript 變成 Json ,就是把這個物件序列化為Json字串,然後才可以通過網路傳遞;
收到一個Json格式的字串;

JSON.parse( json.DATA ) //傳入json字串 

如果我們收到一個JSON格式的字串,只需要把它反序列化成一個JavaScript物件,就可以在JavaScript中直接使用這個物件了。
eg:

1.陣列方式 [ ]

[{
"id" : 1 ,
"name" : "xiaoming"
},{
"id" : 2 , 
"name" : "xiaohong"
}]

   2.物件方式 { }

//前後端分離,推薦後端返回給前端資料格式

{
"status" : 0 ,          //執行狀態碼
"msg"    : "SUCCESS",   //說明文字資訊,沒有為NULL
"data"   :[{            //物件中巢狀陣列,陣列是返回的資料,
"id"    : 1 ,
"name"  : "xiaohong"
},{
"id"    : 2,
"name"  : "xiaoming"
}]
}

   3.反例

{"id" : ox16 } //不合法,數值需要是十進位制
{"name" : underfined } //不合法,沒有該值
[{
"name" : NUll,
"school" : function() {
console.log("該寫法是錯誤的")
}//不合法
}]//json中不能使用自定義函式,或系統內建函式



原文:https://blog.csdn.net/yuzhangsir/article/details/76599940