javascript - 根据另一个对象的值获取父对象的值
问题描述
从 json 中,我可以根据另一个对象的键值获取值吗?我将如何做到这一点?使用数组过滤器或 for 循环?
我试过使用数组过滤器,但它只返回整个 json 对象
这是我的示例 JSON:
[
{
"type":1,
"key": "123abc",
"data": {
"access": "123456"
"data": {
"dataValue": [
{
"@attr": {
"@key": "Fire"
},
"@value": "Flame"
},
{
"@attr": {
"@key": "Water"
},
"@value": "Liquid"
},
{
"@attr": {
"@key": "Earth"
},
"@value": "Stone"
}
]
}
}
}
]
我想要的是通过从“@key”中搜索“Water”从@value 中获取“Liquid”值
输出:液体
感谢那些愿意提供帮助的人。
解决方案
您可以从解析的对象中使用过滤器,如下所示:
let obj = [{
"type": 1,
"key": "123abc",
"data": {
"access": "123456",
"data": {
"dataValue": [{
"@attr": {
"@key": "Fire"
},
"@value": "Flame"
},
{
"@attr": {
"@key": "Water"
},
"@value": "Liquid"
},
{
"@attr": {
"@key": "Earth"
},
"@value": "Stone"
}
]
}
}
}];
console.log(obj[0].data.data.dataValue.filter(a => a["@attr"]["@key"] == "Water")[0]["@value"]);
推荐阅读
- haskell - 这个折叠树函数在 Haskell 中是如何工作的
- ruby-on-rails - 栈桥 HTTP Origin 标头 (https:..) 。不匹配 request.base_url (http:// )
- php - MySQL更新不更新但不给出任何错误
- python - Python相当于SQL中的不等式连接
- appcelerator - 无法签署 apk - 无法识别的算法名称
- azure - 如果客户端不能调用 Close,什么时候控制 MessageSession 锁过期?
- django - 模型标签内的Django ORM - 速度
- python - 如何在 Kivy 的 matplotlib 图表上实现鼠标悬停数据标签弹出窗口
- angular - Angular 7 - 在 .ts 文件上插入 url
- ios - 隐形按钮对被点击没有反应