• 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;
       }

    自测用例

    var json={ 
    100 : 1001,
    epik : 'epik1',
    匡正 : '匡正1',
    // '100' : '100',
    // 'epik' : 'epik',
    // '匡正' : '匡正'
    }
    
    console.log(json['100']);
    // console.log(json.100);//报错
    console.log(json[100]);
    
    console.log(json['epik'])
    console.log(json.epik);
    // console.log(json[epik]); //报错
    
    console.log(json['匡正']); 
    console.log(json.匡正);
    // console.log(json[匡正]);//报错

    用例总结:

    1,定义json的键时,加不加引号效果一样;

    2,取json的建时,

      万能:[''],

      数字可以 []和[''],(.会报错)

      字符可以 .和['']  ([]会报错)

  • 相关阅读:
    Vue自带的过滤器
    Spring Boot定时任务应用实践
    iOS中NSDate常用转换操作整合
    iOS中NSFileManager文件常用操作整合
    定位城市的封装
    微信支付和支付宝的封装
    App审核被拒(后台定位被拒,ipv6被拒,广告标示被拒的解决方案)
    按钮图片文字随意摆放
    设备信息大全
    Library not found for -lAPOpenSdk
  • 原文地址:https://www.cnblogs.com/tkzc2013/p/10149979.html
Copyright © 2020-2023  润新知