js 中處理json常用的方法 (推薦)

一、json定義

JSON ( JavaScript Object Notation) ,它是一串字符串 只不過元素會使用特定的符號標註。

  • {} 雙括號表示對象
  • [] 中括號表示數組
  • "" 雙引號內是屬性或值
  • : 冒號表示後者是前者的值(這個值可以是字符串、數字、也可以是另一個數組或對象)

JSON 語法是 JavaScript 對象表示法語法的子集。
數據在名稱/值對中、數據由逗號分隔、花括號保存對象、方括號保存數組

JSON 值可以是:數字(整數或浮點數)、字符串(在雙引號中)、邏輯值(true 或 false)、數組(在方括號中)、對象(在花括號中)、null

所以 {"name": "Michael"} 可以理解爲是一個包含name爲Michael的對象

其中,JSON對象
  // 花括號內爲鍵、值對 鍵必須用引號括起來,值若不是字符串則不必

var jsonObj = {
        "創維電視" : 50,
        "卡薩帝北京" : 40,
        "家電" : 40,
        "松下" : 30,
        "格力" : 20,
        "海爾" : 20,
        "海爾商城" : 20,
        "海爾客服" : 20,
        "美的" : 20,
        "美菱" : 20
      }

二、爲什麼用json

  1. JSON是純文本格式,是獨立於語言和平臺的。
  2. 生成和解析相對於XML而言要簡單。
  3. 讀寫的速度更快。

三、JS 內置兩個Json方法

1、對象轉化爲字符串

任何把 JavaScript 變成 Json ,就是把這個對象序列化爲Json字符串,然後纔可以通過網絡傳遞; 

JSON.stringify( {} , [ ] , "")

//參數一 :要序列化的數據(object)
//參數二 :控制對象的鍵值,只想輸出指定的屬性,傳入一個數組
//參數三 :序列化後,打印輸出的格式(一個Tab ,可以更直觀查看json)

   例子:

 

2、字符串轉換爲對象

如果我們收到一個JSON格式的字符串,只需要把它反序列化成一個JavaScript對象,就可以在JavaScript中直接使用這個對象了

JSON.parse( json.DATA )  

//傳入json字符串

   

四、全局替換字符串

這裏我們需要用JS實現replaceAll的功能, 將所有的 ' xa" ' 替換成  ' " ' .

代碼如下,這裏的gm是固定的,g表示global,m表示multiple,也可以使用正則表達式

 

 五、遍歷json對象和json數組

1、遍歷JSON對象代碼如下:

var packJson = {"name":"Liza", "password":"123"} ;
for(var k in packJson ){//遍歷packJson 對象的每個key/value對,k爲key
alert(k + " " + packJson[k]);
}

2、遍歷JSON數組代碼如下:

var packJson = [{"name":"Liza", "password":"123"}, {"name":"Mike", "password":"456"}];
for(var i in packJson){//遍歷packJson 數組時,i爲索引
alert(packJson[i].name + " " + packJson[i].password);
}

 

3.遍歷json對象,獲取鍵、值集合

var jsonObj = {
        "創維電視" : 50,
        "卡薩帝北京" : 40,
        "家電" : 40,
        "松下" : 30,
        "格力" : 20,
        "海爾" : 20,
        "海爾商城" : 20,
        "海爾客服" : 20,
        "美的" : 20,
        "美菱" : 20
      }

var keyAry = [];
var valueAry = [];
for(var key in jsonObj){
  keyAry.push(key);
  valueAry.push(jsonObj[key]);
}
//打印輸出
console.log(keyAry);
console.log(valueAry);

4、添加key

jsonObj["西門子"] = 100;

5. 刪除key

deledte jsonObj["海爾"];

六. 根據key獲取value

/ 根據key獲取value,兩種方式
var value1 = eval("jsonObj." + "家電");// value1 = 40
var value2 = jsonObj["家電"];// value2 = 40 

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