gpt4 book ai didi

json - 使用 JSONPath 从 JSON 中排除字段

转载 作者:行者123 更新时间:2023-12-01 10:44:46 25 4
gpt4 key购买 nike

我从 REST 服务调用获得 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
},
{
"category": "fiction",
"author": "Herman Melville",
"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
}
}
}

例如。我想从类别为“引用”的响应中选择作者和标题。我正在使用下面的 JSONPath
$.store.book[?(@.category='reference')]

这给了我以下回应:
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
}

但是,我不想要所有字段。我只想要作者和标题。如果我尝试 $.store.book[?(@.category='reference')]['author'] ,它给了我作者的名字,但如果我尝试 $.store.book[?(@.category='reference')]['author', 'title'] ,它不会返回任何东西。

JSONPath 中是否有任何条款可以选择(或排除)有条件或无条件的字段?

我正在使用 http://jsonpath.curiousconcept.com/测试 JSONPath。

提前致谢。

最佳答案

您的帖子没有说明您使用的是 Goessner 还是 Flow Communications JSON Path 表达式评估器。两者都可以在您使用的表达式测试器站点上找到。如果您使用的是 Goessner,则以下查询有效,但不适用于您使用的表达式测试站点

$.store.book[?(@.category=='reference')]['author','title']

请注意双等号 ( @.category=='reference' ) 而不是单个等号。此外,选择字段 'author','title' 的逗号后不应有空格。 .

你可以看到这里的表达式
http://www.jsonquerytool.com/sample/jsonpathselectmultiplefields

关于json - 使用 JSONPath 从 JSON 中排除字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27820289/

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