我已经能够从json字符串中获取jsonarray,但是不知道如何将它放在带有显示货物类型的String的Hashmap和显示数量的Integer中。
字符串:
"cargo":[
{"type":"Coals","amount":75309},
{"type":"Chemicals","amount":54454},
{"type":"Food","amount":31659},
{"type":"Oil","amount":18378}
]
答案 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"));
}