1. 程式人生 > 實用技巧 >js中 json 和 物件的區別

js中 json 和 物件的區別

什麼是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 </script>

那麼什麼是物件呢?

簡單來說,js物件就是 一種變數;一種引用型別變數object;他的定義方式有三種;具體可以檢視

https://www.cnblogs.com/lixiuming521125/p/10950695.html;其中一種定義方式是字面量定義;就是var obj3={width:100,height:200};這裡的obj3和obj5差不多;

JSON和JS物件區別對比表

區別

Json

Javascript物件

含義

僅僅是一種資料格式

表示類的例項

傳輸

可以跨平臺資料傳輸,速度快

不能傳輸

表現

1,鍵值對方式,鍵必須加引號

2,值不能是方法函式,不能是undefined/NaN

1,鍵值對方式,鍵不加引號

2,值可以是函式、物件、字串、數字、boolean 等

相互轉換

Json轉化為js物件:

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

參考地址:https://www.jb51.net/article/107041.htm