什麼是json ? json怎麼用的(怎麼定義)?
JSON是js的一種資料格式而已;定義:{"鍵名1":"值1""鍵名2":"值2"};文字描述就是: 以“{”開始 ,以“}”結束 ,鍵值對 鍵名用雙引引起來,鍵值 如果是string類型,那麼用雙引引起來,其他則不用雙引引起來;
看以下例子就可以知道JSON的定義了;使用方式同對象;
1 <script>
2 var obj2={};//這隻是JS對象
3 var obj3={width:100,height:200};/*這跟JSON就更不沾邊了,隻是JS的 對象 */
4 var obj4={'width':100,'height':200};/*這跟JSON就更不沾邊了,隻是JS的對象 */
5 var obj5={"width":100,"height":200,"name":"rose"}; /*我們可以把這個稱做:JSON格式的JavaScript對象 */
6 var str1='{"width":100,"height":200,"name":"rose"}';/*我們可以把這個稱做:JSON格式的字元串 */
7 var a=[
8 {"width":100,"height":200,"name":"rose"},
9 {"width":100,"height":200,"name":"rose"},
10 {"width":100,"height":200,"name":"rose"},
11 ];
12 /*這個叫JSON格式的數組,是JSON的稍複雜一點的形式 */
13 var str2='['+
14 '{"width":100,"height":200,"name":"rose"},'+
15 '{"width":100,"height":200,"name":"rose"},'+
16 '{"width":100,"height":200,"name":"rose"},'+
17 ']' ;
18 /* 這個叫稍複雜一點的JSON格式的字元串 */
19
那麼什麼是對象呢?
簡單來說,js對象就是 一種變量;一種引用類型變量object;他的定義方式有三種;其中一種定義方式是字面量定義;就是var obj3={width:100,height:200};這裡的obj3和obj5差不多;
JSON和JS對象差別對比表
差別 | Json | Javascript對象 |
含義 | 僅僅是一種資料格式 | 表示類的執行個體 |
傳輸 | 可以跨平台資料傳輸,速度快 | 不能傳輸 |
表現 | 1,鍵值對方式,鍵必須加雙引号 2,值不能是方法函數,不能是undefined/NaN | 1,鍵值對方式,鍵不加引号 2,值可以是函數、對象、字元串、數字、boolean 等 |
互相轉換 | Json字元串轉化為json格式的對象: 1,JSON.parse(jsonstring); (不相容ie7) 2,Jsobj=eval("("+jsonstring+")"); (相容所有浏覽器,但不安全,會執行json裡面的表達式?) | Js對象轉換為Json字元串: JSON.stringify(jsobj);(不相容ie7) |
其他 | 調用json官網的js,實作parse 和 stringify 在各個浏覽器的相容: https://github.com/douglascrockford/JSON-js/blob/master/json2.js |