JSON取值(key是中文或者數字)方式詳解
先准備一個json對象用於演示
var json = {'name':'zhangsan', '年齡':23, 404:'你可能迷路了'};
-
使用JS中with關鍵字
with(json) { console.log(name);//輸出:zhangsan console.log(年齡);//輸出:23 console.log(404);//輸出:404,用這種方法讀取key是數字的屬性,有問題 }
-
最常見的傳統的讀取key
console.log(json.name);//輸出:zhangsan //key是中文也是支持的 console.log(json.年齡);//輸出:23 //key是Number類型或者String類型的數字都不能這么讀取 console.log(json.404);//報錯
-
通用萬能型:json['key']
console.log(json['name']);/輸出:zhangsan console.log(json['年齡']);//輸出:23 console.log(json['404']);//輸出:你可能迷路了
-
json[key]
console.log(json[name]);/輸出:undefinded console.log(json[年齡]);//報錯 console.log(json[404]);//輸出:你可能迷路了
json處理動態key方式
先准備案例對象
var jsonArr = [
{"id": "1", "name": "A1"},
{"id": "2", "name": "A2"},
{"id": "3", "name": "A3"},
{"id": "4", "name": "A4"},
{"id": "5", "name": "A5"}
]
-
如果數據量不大,偶爾查詢一次,使用for...in遍歷
-
如果數據量大,經常使用,建立查找表提升性能
//創建一個查找表函數 function createLookMap(field) { var map = {};//創建一個空的json對象 for (var i = 0; i < jsonArr.length; i++) { var value = jsonArr[i];//將數組中的元素作為json對象的值 var key = value[field];//選取一個屬性作為新的json對象的key map[key] = value; } return map; }