淺談json數據與json字面量的區別

1.首先明確JSON是什麼?

  • json是一種數據交換格式,是純文本的字符串,是作爲一種替代XML數據格式角色出現,json簡單易讀方便轉換跨平臺,有很多json api提供了json字符串與對象互轉的方法,如下面JavaScript中json字符串互轉的方法。
JSON.stringify()//將對象轉化爲json字符串
JSON.parse()//將json字符串轉化了對象

2.JSON和JavaScript的關係是怎樣的呢 ?

  • json開始是JavaScript語法中的一個子集,後來人們覺得這種形式的用來作爲數據交換格式不錯,就單獨將它拿了出來,這也是造成大家對JSON,JSON字面量,JSON對象之間混淆不清的緣由了。

3.JSON字面量又是什麼呢

  • 一般的我們創建一個對象的方法
var obj1=new Object();
var obj2={}//字面量
  • 上面的第二種就是JavaScript對象字面量的寫法。那那json字面量是什麼呢,那我們在看看下面的一段代碼
var person={
      "name":"xianyu",
      "age":24,
      "love":"Online Game"
}
  • 從上我們可以看出這就是用字面量表示一個對象,而這個格式就是json格式的, 因爲本身json就是JavaScript語法集的一種,所以json字面量就是用json格式的JavaScript對象字面量。

  • json放到JavaScript中執行是合法代碼,是JavaScript對象字面量,但是JavaScript對象字面量不一定是json

var person={
      "name":"xianyu",
      "age":24,
      "love":"Online Game"
}
//和
var person={
      name:'xianyu',
      age:24,
      love:'Online Game',
      skill:function(){
            alert('basketball')
      }
}
  • json必須是符合以下
    • 1.鍵一定要用雙引號,值如果是字符串也要用雙引號包括
    • 2.數據只包括,數字,布爾,數組,null,對象,字符串
  • 而JavaScript對象字面量屬性不用引號也可以,而且值可以是任何類型,函數,undefined或者是正則都是可以的 。json只是JavaScript語法集中的一種,還有很多其他部分的東西都是不符合json的規範。

4.那JSON對象什麼呢

  • JSON對象就是JavaScript中的一個對象,裏面有一些屬性和方法供我們使用,如下面2個方法
JSON.stringify()//將對象轉化爲json字符串
JSON.parse()//將json字符串轉化了對象
//利用這2個方法也用可以做一個對象深拷貝
  • 額外擴展深拷貝
var obj={name:'xianyu',age:24}
var str=JSON.stringify(obj)//得到json字符串
str=JSON.parse(str)//得到Object {name: "xianyu", age: 24}
str==obj//得到false
var obj1 = obj //直接賦值得到的只是一個指針,兩者指向東西都是一樣的
obj1==obj//得到true


                                                                                                                                                                        

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章