假设我有这个流行的数据样本。
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"color": "red",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"color": "blue",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
我想从这里得到的是一本所有的<代码>书,其中<代码>类别==小说和所有的<代码>自行车,其中<代码>颜色==红色。
也就是说,我想要,
{
"category": "fiction",
"author": "Evelyn Waugh",
"color": "red",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"color": "blue",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
},
"bicycle": {
"color": "red",
"price": 19.95
}
我知道,我可以用$.store.book[?(=="小说")]
实现有针对性的书籍和$.store.bicycle[?(实现自行车的针对性。
但我怎样才能同时做到这两个呢?
要归还书籍和自行车,您需要:
$..*[?(@.color== 'red' || @.category == 'fiction')]
对于颜色==红色或类别==小说的书籍,您需要:
$.store.*[?(@.color== 'red' || @.category == 'fiction')]
我建议使用JSR223后处理器和Groovy语言实现您的场景。从过滤数据中提取元素并构建新JSON的示例代码如下所示:
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
def json = new JsonSlurper().parseText(prev.getResponseDataAsString())
def fictionBooks = json.store.book.findAll {it.category == "fiction"}
def redBikes = json.store.bicycle.findAll{it.color="red"}
JsonBuilder builder = new JsonBuilder(fictionBooks + redBikes)
prev.setResponseData(builder.toPrettyString())
上面的代码将用过滤的JSON替换父采样器响应数据
参考文献:
您可以使用
$. store.*[?(红色' || @.类别)
将获取您想要的结果
问题内容: JSON Path Expression应该是什么来获取beneficiary_ids 问题答案: 您所需的JSON路径表达式将如下所示:
请帮助我提取使用Jmetm。
在给定的json文档中,如何验证是否存在json路径? 我使用的是jayway jsonpath,代码如下 上述代码可能会引发以下异常 通用域名格式。乱穿马路。jsonpath。PathNotFoundException:路径:$['a.b.c']没有结果 为了缓解这种情况,我打算在尝试使用JsonPath读取该路径之前验证该路径是否存在。阅读 作为参考,我看了以下两个文档,但没有真正得到我想要的
我只想从文件的完整路径中获取文件夹路径。 例如,我希望只得到(不包括)。 我曾经尝试过这样的事情: 但它给了我这样一个结果: 这不是我需要的结果(是)。 关于如何获取文件路径有什么想法吗?
在实现持久底部栏时,当单击底部栏中的按钮时,需要恢复以前的路由。 单击底部栏中的按钮时,会保存其当前路线路径(/a/b/c ),并根据按钮的单击恢复先前保存的路线。 从概念上讲,用户会认为每个按钮都是一个工作区,其状态永远不会丢失(包括后退堆栈)。用户可以安全地从一个工作区切换到另一个工作区。 当路由重绕到根时,如何在Flutter中获取当前路由路径?
这是我回应的一部分: 我有10个事件,每个事件下我都有venue_name,我需要检查是否所有这些事件都包含“纽约”(这是根据地点结果进行搜索) 在Json路径提取器中,我的参数是: 目标变量名:venue_name JSONPath表达式:$...venue_name 默认值:NOT_FOUND 我应该如何更正我的BeanShell代码?