JSON取值(key是中文或者数字)方式详解
先准备一个json对象用于演示
?
1 | var json = { 'name' : 'zhangsan' , '年龄' :23, 404: '你可能迷路了' }; |
1.使用JS中with关键字
?
1 2 3 4 5 | with (json) { console.log(name); //输出:zhangsan console.log(年龄); //输出:23 console.log(404); //输出:404,用这种方法读取key是数字的属性,有问题 } |
2.最常见的传统的读取key
?
1 2 3 4 5 | console.log(json.name); //输出:zhangsan //key是中文也是支持的 console.log(json.年龄); //输出:23 //key是Number类型或者String类型的数字都不能这么读取 console.log(json.404); //报错 来源地址: https://www.jb51.net/article/121989.htm |
3.通用万能型:json['key']
?
1 2 3 4 5 6 7 | 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方式
先准备案例对象
?
1 2 3 4 5 6 7 | 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.如果数据量大,经常使用,建立查找表提升性能
?
1 2 3 4 5 6 7 8 9 10 | //创建一个查找表函数 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; } |
来源地址:https://www.jb51.net/article/121989.htm