如何将JsonArray转换为Hashmap

时间:2015-11-08 16:03:51

标签: java arrays json

我已经能够从json字符串中获取jsonarray,但是不知道如何将它放在带有显示货物类型的String的Hashmap和显示数量的Integer中。

字符串:

"cargo":[   
    {"type":"Coals","amount":75309},        
    {"type":"Chemicals","amount":54454},        
    {"type":"Food","amount":31659},     
    {"type":"Oil","amount":18378}
]

2 个答案:

答案 0 :(得分:5)

这为我解决了这个问题:

JsonArray jsoncargo = jsonObject.getJsonArray("cargo");

Map<String, Integer> cargo = new HashMap<>();
for (int i = 0; i < jsoncargo.size(); i++) {            
    String type = jsoncargo.getJsonObject(i).getString("type");
    Integer amount = jsoncargo.getJsonObject(i).getInt("amount");
    cargo.put(type, amount);
}

答案 1 :(得分:0)

尝试创建一个新的HashMap,并遍历JSONArray,将每个元素添加到哈希图中。

JSONArray allCargo = jsonObject.getJsonArray("cargo");

HashMap<String, String> hm = new HashMap();

for(Object cargo : allCargo) {
    LinkedHashMap lhm = (LinkedHashMap) cargo;
    hm.put((String)lhm.get("type"), (String)lhm.get("amount"));
}