定義:
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格式的字符串 */
區別 | 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在哥哥瀏覽器的兼容: |