jsonpath - JSONpath,仅当其他元素有值时才返回结果
问题描述
我正在寻找 JSONpath 表达式来提取数组中的元素,前提是它包含另一个元素。
以下表达式返回所有元素;
$.differ.element[*]['id','alias']
这是 JSON 文件:
{
"differ": {
"element": [
{
"id": "Address",
"alias": [
"Information about address"
]
},
{
"id": "Address.extension",
"path": "Address.extension"
},
{
"id": "Address.extension:official",
"path": "Address.extension",
"alias": [
"Mark address"
]
}
]
}
}
这将产生以下输出:
[
"Address",
[
"Information about address"
],
"Address.extension",
"Address.extension:official",
[
"Mark address"
]
]
我想省略 'Address.extension' 元素,因为它没有别名。我怎样才能做到这一点?
解决方案
你可以试试这个
$.differ.element[?(@.alias)]
会得到这样的输出:
[
{
"id":"Address",
"alias":[
"Information about address"
]
},
{
"id":"Address.extension:official",
"path":"Address.extension",
"alias":[
"Mark address"
]
}
]
推荐阅读
- angular - 我正在尝试修复项目中的 lint 问题,我遇到了以下错误,说缺少必需,模式参数不存在
- node.js - 试图将一个频道专用于仅发送图片和 reddit 链接
- linux - 尝试写入 .bss 时出现分段错误
- c# - C# 使用 DrawingVisual 从 MediaPlayer 绘制多个图像
- javascript - 在javascript中乘以数组?
- javascript - 在 ReactJS 中成功登录后如何重定向到页面?
- mesh - 是否有任何 C++ 库(用于 Linux)用于修复非流形网格并将其转换为流形几何?
- karate - 如果在空手道框架中满足条件,是否可以定义变量?
- tcl - 如何从特定行获取全名和列号
- git - 在 Git 中有效地对大文件进行小改动?