java - 寻找 JSON 中的最大/最小值

标签 java json

我正在尝试从此 URL ( https://rsbuddy.com/exchange/summary.json ) 查询此 JSON,以搜索并返回项目名称(例如 Cannonball 是 JSON 中的第一个名称),该名称具有以下之一的最大/最小值其他类别(例如 buy_quantity)。

编辑:在@meriton的帮助下,我的代码现在是

ObjectMapper mapper = new ObjectMapper();
        try{

        Map<String, ExchangeSummaryItem> exchangeSummary = mapper.readValue(new URL("https://rsbuddy.com/exchange/summary.json"), new TypeReference<Map<String, ExchangeSummaryItem>>() {});
        System.out.println(exchangeSummary.size());
        }catch (IOException e){
            e.printStackTrace();
        }

尽管如此,我似乎不知道如何通过 ExchangeSummary 进行搜索并找到某些值,例如具有最高 buy_quantity 的商品。

最佳答案

在 Java 中访问 JSON 时,通常使用数据绑定(bind)库将 JSON 数据复制到普通的 java 对象中。

为此,我们需要编写一个 Java 类来接受 JSON 数据。查看您的 JSON,它似乎包含一个具有动态属性的对象,该对象将每个 id 映射到描述该市场项目的对象。在 Java 方面,我们可以用 Map<String, ExchangeSummaryItem> 来表示。 ,其中ExchangeSummaryItem定义为

public class ExchangeSummaryItem {
    public String id;
    public String name;
    public boolean members;
    public int sp;
    public int buy_average;
    public int but_quantity;
    public int sell_average;
    public int sell_quantity;
    public int overall_average;
    public int overall_quantity;
}

通过这个定义,我们可以询问数据绑定(bind)库,例如 Jackson将 JSON 数据读取到此类的对象中:

ObjectMapper mapper = new ObjectMapper();
Map<String, ExchangeSummaryItem> exchangeSummary = mapper.readValue(
    new URL("https://rsbuddy.com/exchange/summary.json"), 
    new TypeReference<Map<String, ExchangeSummaryItem>>() {}
);

然后您可以简单地迭代集合,并对项目数据执行任何您想要的操作:

for (ExchangeSummaryItem item : exchangeSummary.values()) {
  // do whatever you want with item
}

有关 Jackson 的更多信息,请查看他们的文档,特别是他们的 README .

关于java - 寻找 JSON 中的最大/最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55410970/

相关文章:

java - SWT TableColumn 不起作用?

java - 找到类 org.apache.hadoop.mapreduce.TaskInputOutputContext,但应为接口(interface)

java - Hibernate:一对多和继承,表未创建

javascript - TypeError : $(. ..).val(...).html 不是函数

java - Jackson ObjectMapper 用方括号包裹每个元素(即使是单个值)

java - Swift 新手 - 可失败的初始化器

java - GWT 2.8.2编译器异常

jquery - 自动完成选择重定向

android - 使用改造和 Moshi 解析 api 响应不完全 "json"

javascript - 通过 AJAX 加载 jqPlot