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; }
自测用例
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的建时,
万能:[''],
数字可以 []和[''],(.会报错)
字符可以 .和[''] ([]会报错)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?