淺談Json數據格式


我們先來看下w3cschool對json的定義:

JSON:JavaScript 對象表示法(JavaScript Object Notation)。

JSON 是存儲和交換文本信息的語法。類似 XML。

JSON 比 XML 更小、更快,更易解析。

 

使用中,json有以下三種結構:

  1. 對象:{"name":"Michael","age":24}
  2. 數組:比如:[{"name":"Michael","age":24},{"name":"Tom","age":25}]
  3. 值:{"name":"Michael", "birthday":{"month":8,"day":26}},類似於對象嵌套對象.

 很多人疑惑{}和[]形式的區別。看到一段很經典的總結:大括號{}用來描述一組“不同類型的無序鍵值對集合”(每個鍵值對可以理解為OOP的屬性描述),方括號[]用來描述一組“相同類型的有序數據集合”(可對應OOP的數組)

上面的例子中,鍵都是字符串形式,值可以取任意類型。對於var p1={name:"Michael",age:24},我們稱為對象自面量。兩者是不同的,例子后面會講到。

 

訪問json數據的兩種方法:

//例子
var  obj={name:"Michael",age:24};

obj.name;//方式1,和java語言中訪問對象的屬性是一樣的。

alert(obj["name"]) //方式2,和js中數組的訪問方式是一樣的。

 

Json數據字符串化(序列化):

          Json數據是跨平台的,在網絡數據傳輸流程中,json是以文本,即字符串的形式傳遞的,各種語言對字符串的處理比較統一。而在JS是 對象的形式。

JSON.stringify()將JSON對象轉為JSON字符串(序列化);

JSON.parse()將JSON字符串轉為JSON對象(反序列化)

  例子:

   

<script>

 var  obj={"name":"Michael","age":24};

 var  obj1=JSON.stringify(obj);//注意:json全大寫

 

 

 alert(obj);//彈出Object類型;說明是對象

 alert(obj.name);//彈出屬性值

 alert(obj1);//彈出轉化為字符后的;

 

 var  obj2 = JSON.parse(obj1);

 alert(obj2)//轉換后,彈出Object類型;說明已經轉化成對象;

</script>

 

 

對象字面量的例子:

 

<script>

 var  obj={name:"Michael",age:24};

 

 alert(obj);//彈出Object類型;說明是對象

 alert(obj["name"])//alert(obj.name),但是obj[name]不行

 

 var  obj1=JSON.stringify(obj);//注意:json全大寫

 alert(obj1);//彈出轉化為字符后的;{"name":"Michael","address":24};

 

</script>

 

 

這個例子看出,對象字面量的使用方法跟json完全一樣。個人以為,可以理解為已經轉化成json了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM