当有多个类似的数据集时使用Json

时间:2017-03-21 19:56:04

标签: java json

Java的新手,刚刚发现了JSON的奇迹。

我有我的游戏API(https://rsbuddy.com/exchange/summary.json

列出游戏中的所有待售商品。

使用JSON并输入特定的商品ID我已获得我的代码以返回该商品的所有相关购买/销售数据。简单

TLDR

现在它变得比我的编码能力更复杂,因为我想创建一种方法,从同一项目的销售数据中减去项目的购买数据,从而使我能够在一次犯规中发现每个项目的真实边缘,理想情况下,使用列表顶部的最大边距项返回它们。

关于我如何实现这一目标的任何指导都是吝啬的!

1 个答案:

答案 0 :(得分:0)

示例中的json包含许多元素,如下所示:

"2": {
        "overall_average": 197,
        "buy_average": 197,
        "id": 2,
        "sp": 5,
        "sell_average": 197,
        "members": true,
        "name": "Cannonball"
    }

您可以定义一个模型,该模型可用于序列化 - 反序列化包含overall_average等的部分。下面是一个示例(使用jasckson):

class Element {
    @JsonProperty("overall_average")
    private int overallAverage;

    @JsonProperty("buy_average")
    private int buyAverage;

    //Other properties and getters-setters
}

完成此操作后,您可以将其包装到Map中,它看起来像这样:

Map<String, Element> data;

使用上面的模型,您可以将json反序列化为Map并使用map.get按ID获取项目:

ObjectMapper mapper = new ObjectMapper();
Map<String,Element> data = mapper.readValue("<json>", new TypeReference<Map<String,Element>>() {});

Here是杰克逊的文档。