JSON取值(key是中文或者数字)方式详解

来源:互联网 发布:淘宝卖家数据分析插件 编辑:程序博客网 时间:2024/06/05 05:47

先准备一个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']);/输出:zhangsanconsole.log(json['年龄']);//输出:23console.log(json['404']);//输出:你可能迷路了json[key]console.log(json[name]);/输出:undefindedconsole.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;}
阅读全文
0 0
原创粉丝点击