2017-03-21 59 views
-1

新的Java到Java,並剛剛發現了JSON的奇蹟。當有多個類似的數據集時使用Json

我有我的遊戲API(https://rsbuddy.com/exchange/summary.json

這列出了在遊戲中出售的所有項目。

使用JSON並輸入具體的產品ID我有我的代碼返回該產品的所有相關購買/銷售數據。簡單

TLDR

現在,它變得比我的編碼能力更加複雜,因爲我希望創建一個來自同一項目的銷售數據中減去一個項目的購買數據從而讓我發現真正的利潤的方法在一次犯規中每一項物品,理想情況下返回列表頂部最大的保證金項目。

任何有關我如何實現這一目標的指導都是可取的!

+0

您確定您使用的是Java而非JavaScript嗎?你似乎不太可能是Java和JSON的新手,但是正在考慮使用json ... – marisbest2

+0

嘿,是的,我在IntelliJ IDEA中使用Java進行編程。 Json是我需要用來解析我收集的數據的東西。你能否告訴我如何在這裏分享我的代碼的一部分,就像之前評論過的那個人一樣? – Yawodo

+0

JSON是一種數據存儲格式。使用傑克遜來解析它。將它加載到地圖中,然後根據需要做任何事情 – marisbest2

回答

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; 

使用上述模型,可以deserialise的JSON到Map和使用map.get通過ID來獲得的項目:

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

Here的傑克遜的文檔。

+0

非常感謝@DarshanMehta傑克遜正是我所追求的。現在閱讀 – Yawodo

相關問題