gpt4 book ai didi

java - JsonPath 表达式来过滤属性并选择部分记录?

转载 作者:行者123 更新时间:2023-11-30 07:59:40 27 4
gpt4 key购买 nike

以下是我正在使用的详细信息:

<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.0.0</version>
</dependency>

我有以下示例 JSON。

[
{
"something": "who cares",
"job_name":"my-long-job-name-that-ends-in-box",
"some_number": 1
},
{
"something": "who care here either",
"job_name": "my-long-job-name-that-ends-in-something-else",
"some_number": 2
}
]

到目前为止,我可以匹配以 box 结尾的记录:

$.[?(@.job_name =~ /^.+box/i )]

查找所有以 box 结尾的 job_name 对象并转储整个记录。这没问题,但有时我想指定要返回的属性子集而不是整个对象。

在我的真实数据中,有几十个字段,我只需要一次查看其中的几个字段。

$.[?(@.job_name =~/^.+box/i )].job_number 只会返回 job_number

使用上面的示例数据如何返回 job_namesome_number 但不返回 something

如何修改我的 JsonPath 表达式以仅返回我想要查看的字段。

最佳答案

解决方案

经过对文档的更多尝试和错误以及我还没有尝试过的另一件事,我找到了解决方案:

$.[?(@.job_name =~ /^.+box/i )].['job_name','some_number']

将返回一个Map,仅将job_namesome_number作为示例数据中一条记录的键。

关于java - JsonPath 表达式来过滤属性并选择部分记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32128325/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com