1. 程式人生 > >JSON取值(key是中文或者數字)方式詳解

JSON取值(key是中文或者數字)方式詳解

先準備一個json物件用於演示

var json = {'name':'zhangsan', '年齡':23, 404:'你可能迷路了'};
  1. 使用JS中with關鍵字

     with(json) {
         console.log(name);//輸出:zhangsan
         console.log(年齡);//輸出:23 console.log(404);//輸出:404,用這種方法讀取key是數字的屬性,有問題 }
  2. 最常見的傳統的讀取key

     console.log(json.name);//輸出:zhangsan
     //key是中文也是支援的
     console.log(json.年齡);//輸出:23 //key是Number型別或者String型別的數字都不能這麼讀取 console.log(json.404);//報錯
  3. 通用萬能型:json['key']

     console.log(json['name']);/輸出:zhangsan
     console.log(json['年齡']);//輸出:23 console.log(json['404']);//輸出:你可能迷路了
  4. 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"} ]
  1. 如果資料量不大,偶爾查詢一次,使用for...in遍歷
  2. 如果資料量大,經常使用,建立查詢表提升效能

     //建立一個查詢表函式
     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; }