javascript - 使用路径从 JSON 对象获取数据
问题描述
假设我有一个这样的 JSON 对象:
var data = {
"name": "abcd",
"age": 21,
"address": {
"streetAddress": "88 8nd Street",
"city": "New York"
},
"phoneNumber": [
{
"type": "home",
"number": "111 111-1111"
},
{
"type": "fax",
"number": "222 222-2222"
}
]
}
我想通过使用字符串路径从这个json对象中获取信息,比如
var age = 'data/age'; // this path should return age
var cityPath = 'data/address/city'; // this path should return city
var faxNumber = 'data/phoneNumber/1/number'; // this path should return fax number
有什么办法可以从字符串路径中获取这些信息?目前我正在拆分路径/
,然后像data.age
or一样使用它data.address.city
。但是这种方法对于 JSON 对象中包含的任何数组都没有用。
对于这个问题,JavaScript 中有没有更好和最优的方法?
解决方案
这是您可以从 JSON 访问数据的方式,无需使用路径:
var data = {
"name": "abcd",
"age": 21,
"address": {
"streetAddress": "88 8nd Street",
"city": "New York"
},
"phoneNumber": [
{
"type": "home",
"number": "111 111-1111"
},
{
"type": "fax",
"number": "222 222-2222"
}
]
}
var age = data.age;
var cityPath = data.address.city;
var faxNumber = data.phoneNumber[0].number; // array first item begins with 0
console.log({age, cityPath, faxNumber})
如果您出于某种原因确实需要使用路径,我建议使用 lodashget
方法https://lodash.com/docs#get
推荐阅读
- laravel - Laravel 文件存储位置混乱
- c - Linux插入回车换行符而不是换行符
- javascript - 等待动作完成,然后在 puppeteer 中再次执行
- android - 如何从界面获取 Gilde 的上下文
- javascript - 当绘制它们的循环结束时如何为圆圈设置动画p5.js
- magento-1.9 - Magento 多个登录选项
- docker - 在 Rancher-Kubernetes 中部署/激活 docker 映像时权限被拒绝
- project-reactor - 如何回退项目反应堆通量的错误元素 onErrorReturn?
- python - Python解析嵌套的orderdicts
- javascript - 在 React Native 上打开 PDF