如何获得整个 json 并使用 JsonPath 按字符串过滤后反映的结果
How to get the whole json with the result reflected after filter by string using JsonPath
我可以得到整个 json 并在使用 JsonPath 按字符串过滤后反映结果吗?
- 之前 JSON
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
- JSON之后(我想要这个结果)
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
通过 '$..book[?(@.author =~ /.*[=27=])]'
按字符串过滤书籍
但是你能告诉我把整个 JSON 反映出来吗?
您不能使用 JSONPath 执行此操作;虽然您想要 select 基于内部项目 属性 的 outer-most 项目,但您不想检索整个外部项目。那行不通。
选择外面的项目可以这样
$..store[?(@.book[0].author =~ /.*REES/i)]
但这也会 return 位置 2 的书,即索引 1。
听起来您确实需要 JSON 转换,例如 Jolt。
例如,Jolt 的删除转换器可以让您像这样删除第二本书:
[
{
"operation": "remove",
"spec": {
"store": {
"book": {
"array": {
"1": "" //remove book at position 2
}
}
}
}
}
]
使用您自己的输入在线尝试 here。
我可以得到整个 json 并在使用 JsonPath 按字符串过滤后反映结果吗?
- 之前 JSON
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
- JSON之后(我想要这个结果)
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
通过 '$..book[?(@.author =~ /.*[=27=])]'
按字符串过滤书籍但是你能告诉我把整个 JSON 反映出来吗?
您不能使用 JSONPath 执行此操作;虽然您想要 select 基于内部项目 属性 的 outer-most 项目,但您不想检索整个外部项目。那行不通。
选择外面的项目可以这样
$..store[?(@.book[0].author =~ /.*REES/i)]
但这也会 return 位置 2 的书,即索引 1。
听起来您确实需要 JSON 转换,例如 Jolt。
例如,Jolt 的删除转换器可以让您像这样删除第二本书:
[
{
"operation": "remove",
"spec": {
"store": {
"book": {
"array": {
"1": "" //remove book at position 2
}
}
}
}
}
]
使用您自己的输入在线尝试 here。