1. 程式人生 > >js json物件和普通JS物件的區別

js json物件和普通JS物件的區別

定義:

  JSON是什麼?JSON是JS的一種簡單資料格式,JSON是JavaScript原生格式,它是一種嚴格的js物件的格式,JSON的屬性名必須有雙引號,如果值是字串,也必須是雙引號。

問題:

  JSON是什麼?(JSON和JavaScrip物件有什麼區別?)如何把JS物件轉換位JSON字串又如何把JSON字串轉換成JavaScript物件?

  答:JSON (JavaScript Object Notation) 一種簡單的資料格式,比Xml更輕巧。JSON 是JavaScript原生格式,這意味著在JavaScript中處理JSON資料不需要任何特殊的API 或者工具包。JSON的規則很簡單:物件是一個無序的“名稱/值”對集合。一個物件以"{"(左括號)開始,“}”(右括號)結束。每個"名稱"後跟一個":"(冒號);“名稱/值”對之間使用","(逗號)分隔。

它是一種嚴格的JS物件的格式,JSON屬性名稱必須有雙引號,如果值是字串,也必須是雙引號;

JSON只是一種資料格式;

  <script>

    var obj ={};//這只是JS物件

    var obj1={width:100,height:200}//JS物件

    var obj2={'width':100,'height':100}//JS物件

    var obj3={"width":100,"height":100,"name":"rose"}//JSON格式的JS物件

    var obj4='{"width":100,"height":200,"name":"rose"}'

;/*我們可以把這個稱做:JSON格式的字串 */

    var array=[

    {"width":100,"height":200,"name":"rose"},

    {"width":100,"height":200,"name":"rose"},

     {"width":100,"height":200,"name":"rose"},

    ] /*這個叫JSON格式的陣列,是JSON的稍複雜一點的形式 */

    var arrayStr='['+

     '{"width":100,"height":200,"name":"rose"},'

+

     '{"width":100,"height":200,"name":"rose"},'+

     '{"width":100,"height":200,"name":"rose"},'+

     ']' ;/* 這個叫稍複雜一點的JSON格式的字串 */ 

  </script>

 

區別 JSON Javascript
含義 僅僅是一種資料格式 表示類的例項
傳輸 可以跨平臺資料傳輸,速度快 不能傳輸
表現

1.簡直對方式,鍵必須加雙引號

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

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

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

相互轉換

Json轉換Js物件

1.JSON.parse(JsonStr);(不相容IE7)

2.eval("("+jsonStr+")");(相容所有瀏覽器,但不安全,會執行json裡面的表示式?)

js物件轉換Json

JSON.stringify(jsObj);

其他 呼叫JSON官網的JS,實現parse和stringify在哥哥瀏覽器的相容:

總而言之你可以理解為JSON是JS下的一種資料格式,他從屬於JS,並且在處理JSON資料時可直接使用JS內建API