如何使用JsonPath获取整个json,并在按字符串过滤后反映结果
我是否可以使用JsonPath通过字符串过滤后得到整个json以及反映的结果如何使用JsonPath获取整个json,并在按字符串过滤后反映结果,json,jsonpath,jayway,Json,Jsonpath,Jayway,我是否可以使用JsonPath通过字符串过滤后得到整个json以及反映的结果 在JSON之前 在JSON之后(我想要这个结果) 通过“$…book[?(@.author=~/.*REES/i)]对book按字符串进行筛选 但是,您能告诉我如何反映整个JSON吗?您不能使用JSONPath;虽然要根据“内部项”属性选择最外层的项,但不希望检索整个外部项。这是行不通的 选择外部项目可以这样做 $..store[?(@.book[0].author =~ /.*REES/i)] 但这也将返回
- 在JSON之前
- 在JSON之后(我想要这个结果)
但是,您能告诉我如何反映整个JSON吗?您不能使用JSONPath;虽然要根据“内部项”属性选择最外层的项,但不希望检索整个外部项。这是行不通的 选择外部项目可以这样做
$..store[?(@.book[0].author =~ /.*REES/i)]
但这也将返回位于位置2的图书,即索引1
听起来您实际上需要一个JSON转换,比如
例如,Jolt的remove transformer允许您删除第二本书,如下所示:
[
{
"operation": "remove",
"spec": {
"store": {
"book": {
"array": {
"1": "" //remove book at position 2
}
}
}
}
}
]
使用您自己的输入联机尝试。JSONPath本身无法完成此操作。。!我会寻找震动。谢谢你的回答!
$..store[?(@.book[0].author =~ /.*REES/i)]
[
{
"operation": "remove",
"spec": {
"store": {
"book": {
"array": {
"1": "" //remove book at position 2
}
}
}
}
}
]