json - 如何根据JQ中Json中元素的值过滤对象数组
问题描述
我正在尝试使用 JQ 从 Json 中获取值。
我必须从 inputJson (activeItem) 中获取一个 ID,并使用该 ID 从下面的项目列表中获取元素的名称。
这可以在单个查询中完成吗?
{
"amazon": {
"activeitem" : 2,
"items": [
{
"id" : 1,
"name": "harry potter",
"state": "sold"
},
{
"id" : 2,
"name": "adidas shoes",
"state": "in inventory"
},
{
"id" : 3,
"name": "watch",
"state": "returned"
}
]
}
}
现在我首先获取值并进行过滤,而不是我想在单个查询中进行。
解决方案
使用您的数据,过滤器:
.amazon
| .activeitem as $id
| .items[]
| select(.id == $id)
| .name
产生:
"adidas shoes"
(如果需要原始字符串,请使用 -r 命令行选项。)
推荐阅读
- python - 在 python 中将字典与 dfa 库一起使用
- html - 是否可以将鼠标悬停在导航栏中的导航按钮上,显示它的描述?
- mongodb - 区域服务器从附近的 MongoDB 集群节点读取并写入远程 MongoDB 主节点
- python-3.x - 打开带有 NUL 字节的 CSV
- android - 使用滑动手势检测导航栏中的事件
- java - 如何在静态方法结束时返回变量
- java - Spring Webclient 收到 404 错误,没有消息
- c# - 如何使用半边数据结构获得一系列顶点/边?
- c - 为什么 printf 被调用两次?甚至看起来是随机的?
- android - DiffUtil 重绘 ListAdapter Kotlin 中的所有项目