Java的新手,刚刚发现了JSON的奇迹。
我有我的游戏API(https://rsbuddy.com/exchange/summary.json)
列出游戏中的所有待售商品。
使用JSON并输入特定的商品ID我已获得我的代码以返回该商品的所有相关购买/销售数据。简单
TLDR
现在它变得比我的编码能力更复杂,因为我想创建一种方法,从同一项目的销售数据中减去项目的购买数据,从而使我能够在一次犯规中发现每个项目的真实边缘,理想情况下,使用列表顶部的最大边距项返回它们。
关于我如何实现这一目标的任何指导都是吝啬的!
答案 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是杰克逊的文档。