- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 JsonPath 从给定的 json 中找到特定值的最小值。
给出以下 json(取自 here ):
{
"store": {
"book": [{
"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
}]
},
"expensive": 10
}
我正在尝试找出所有图书价格中的最低价格。所以基本上我期待:
min(8.99,22.99) = 8.99
通过查看 jsonPath github page 中的示例关于函数,我尝试了以下表达式,但它似乎不起作用。
$..book[*].price.min()
但我收到以下错误:
Aggregation function attempted to calculate value using empty array
我做错了什么吗?
做这样的事情的正确方法是什么?
编辑:您可以测试表达式 here
最佳答案
以下是你写在解决方案类中的解决方案...
import java.util.ArrayList;
import com.google.gson.GsonBuilder;
public class Solution {
public static void main(String[] args) {
//building your object
SolutionTo objSolutionTo = new SolutionTo();
StoreTO objStoreTO = new StoreTO();
ArrayList<BookTo> objArrayList = new ArrayList<BookTo>();
BookTo objBookTo = new BookTo();
objBookTo.setAuthor("Herman Melville");
objBookTo.setCategory("fiction");
objBookTo.setTitle("Moby Dick");
objBookTo.setIsbn("0-553-21311-3");
objBookTo.setPrice(8.99);
BookTo objBookTo2 = new BookTo();
objBookTo2.setAuthor("J. R. R. Tolkien");
objBookTo2.setCategory("fiction");
objBookTo2.setTitle("The Lord of the Rings");
objBookTo2.setIsbn("0-553-21311-3");
objBookTo2.setPrice(22.99);
objArrayList.add(objBookTo);
objArrayList.add(objBookTo2);
objStoreTO.setBook(objArrayList);
objSolutionTo.setStore(objStoreTO);
objSolutionTo.setExpensive(10.0);
System.out.println(new GsonBuilder().serializeNulls().setPrettyPrinting().create().toJson(objSolutionTo));
//The logic you require to find the min value of price
Double minPrice = Double.MAX_VALUE;
for (BookTo bookTo : objSolutionTo.getStore().getBook()) {
if (minPrice > bookTo.getPrice())
minPrice = bookTo.getPrice();
}
System.out.println(minPrice);
}
以下是 solutionTO 类::
public class SolutionTo {
private StoreTO store;
private Double expensive;
public StoreTO getStore() {
return store;
}
public void setStore(StoreTO store) {
this.store = store;
}
public Double getExpensive() {
return expensive;
}
public void setExpensive(Double expensive) {
this.expensive = expensive;
}
}
以下是 StoreTo 类::
import java.util.ArrayList;
public class StoreTO {
private ArrayList<BookTo> book;
public ArrayList<BookTo> getBook() {
return book;
}
public void setBook(ArrayList<BookTo> book) {
this.book = book;
}
}
以下是 bookTo 对象::
public class BookTo {
private String category;
private String author;
private String title;
private String isbn;
private Double price;
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
}
运行解决方案类中的主要方法你会找到你想要的...
快乐的帮助...:)
关于java - 最低使用 Jayway JsonPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36737741/
我想添加一个监视器来检测不健康的服务并在这种情况下发送警报。我公开了一个简单的 REST API - /healthy,它返回一个 JSON例如{“健康”:true}。 然后我向我的 site24x7
使用 JSONPath,如何从已知键列表中提取单个值? 例如,我想编写一个 JSON 路径表达式,可以从所有这三个 JSON 文档中提取 Sean: { "firstName": "Sean"} {
使用节点 JSONPath,如何从子节点值中获取父节点名称 { "store": { "book": [ { "id":"1", "author
使用ashphy json path evaluator ,以及以下 JSON: { "store": { "book": [ { "category": "reference",
JsonPath 是否支持 AND (&&) 运算符? 考虑以下 JsonPath 表达式: $.values[?(@.level=='First' && @.type == 'Sales')].se
我正在尝试使用 jsonPath 和 pick 函数来确定是否需要根据当前域运行规则。我正在做的事情的简化版本在这里: global { dataset shopscotchMerch
我正在尝试在 Nifi 中使用 EvaluateJsonPath 处理器,但在使用 jayway jsonpath 语法时遇到了问题。我的对象如下所示: {"text":"my stuff", "ta
我有一个实现问题... #!/usr/bin/python #This is the API for BTC price request. # Average all the amounts, and
我正在使用放心框架,并且在它内部,它有 JsonPath 类。JsonPath 的方法签名为 getList(String path, Class T); 我尝试做这样的事情: List myList
我有这个“内容”响应,我需要从中断言一些值。 WebTestClient.BodyContentSpec content = response.expectStatus().isOk()
我正在读取一个文件,其中 Json 数据可用。我需要创建一个方法,它需要 jsonobject、jsonpath、type我需要检查 jsonpath 的数据类型,输入...如果数据类型相同,则应返回
我在使用 Stefan Goessner 的 JsonPath 查找数组或列表大小时遇到问题。我使用的是 json-path-2.0.0 版本。 我的 jsonpath 表达式是 $.orders
由于与我正在从事的项目相关的原因,我希望将对 JSON 文件的整个查询保存为一个字符串,例如,$.store.book[*].title(而不是必须将文档的每个级别临时存储为单独的对象)。 我目前正在
我正在尝试使用 Spring Boot Test 为 rest 端点编写单元测试,但是当我尝试使用 jsonPath 对 json 响应中的对象进行断言时,即使在以下情况下也会抛出 Assertion
我安装了 jsonpath-rw 1.4.0 sudo apt-get install python-jsonpath-rw 它带有一个 /usr/bin/jsonpath。但这在使用过滤器表达式时给
我有AWS步骤机,并且其中一个步骤用于使用SNS服务通知失败。我想从input json中选择一些元数据到传出消息中。所以我试图用jsonpath连接常量字符串,如下所示 "Notify Failur
我有如下的json字符串 [ { "topic": "inputTopic", "key": "0", "message": "test",
有没有办法通过过滤以下 json 中的“d”来提取“a”值? [ { "a":1, "b":{ "c":11,"d":12 } }, { "a":2, "b
我发现理解如何编写一个 jsonpath 来告诉我该字段中是否存在某些值有点困难。 例如:考虑这个 json: { "firstName": "John", "lastName" : "doe
我有一种情况,我有一个 json 字符串,它有一个子元素作为只包含字符串的数组。有没有办法获取包含特定字符串的数组的对象引用。 例子: { "Books":{ "History":[
我是一名优秀的程序员,十分优秀!