我已经能够从json字符串中获取json数组,但不知道如何将其放入Hashmap中,其中字符串显示货物类型,整数显示数量。
字符串:
"cargo":[
{"type":"Coals","amount":75309},
{"type":"Chemicals","amount":54454},
{"type":"Food","amount":31659},
{"type":"Oil","amount":18378}
]
尝试创建一个新的HashMap,循环JSONArray,将每个元素添加到HashMap中。
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"));
}
我已经能够用谷歌GSON解决这个问题
Map<String, Integer> cargoMap = new HashMap<>();
JsonObject jsonObject = new Gson().fromJson(yourJsonString, JsonObject.class);
JsonArray cargo = jsonObject.getAsJsonArray("cargo");
cargo.forEach(item ->
{
String type = item.getAsJsonObject().get("type").getAsString();
int amount = item.getAsJsonObject().get("amount").getAsInt();
if (StringUtils.isNotBlank(type) || amount != 0) {
cargoMap.put(type, amount);
}
});
其中“yourJsonString”是包含货物json数组的整个json。
这为我解决了问题:
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);
}
问题内容: 我有一个下面的代码- 通过HttpClient连接到Web服务到PHP文件 从SQL查询返回结果 返回格式是一个jArray(一个JSONArray) 当我查看LogCat时,我看到了查询的所有“名称”,每条记录都被打印出来。我只需要将这些结果插入ListView中即可。我怎样才能做到这一点? PS-我没有ArrayAdapter的单独类。这可能是原因吗? 问题答案: 如果您只想显示t
问题内容: 基本上我有: 现在,我想将其转换为包含相同信息的。这样我就可以绕过对象,然后在需要时可以从对象中获取所有信息。任何帮助,将不胜感激,谢谢。 问题答案: 通常,Json对象将包含您的值(包括数组)作为其中的命名字段。因此,类似: 在JSON中将是{“ arrayName”:[…]}。
问题内容: 我有这样的回应: 这是我的代码: 如何转换为JSONArray? 问题答案: 像这样:
问题内容: 我的方法有问题。 在客户端,我想要一个数组而不是JSON 我怎样才能做到这一点? 客户代码: 我的方法返回,但我想从中提取数字,以便使用这些数字进行计算(例如作为)。 我公开了作为JSONObject的功能。 然后我得到错误:无法从JSONObject转换为int [] 2种其他方式 这次我得到:无法从JSONArray转换为int [] … 反正还是行不通.. 问题答案: 我从来没有
问题内容: 在我的Android项目中,我试图将收到的JSONArray转换为List。借助这个SO答案,我走得更远。我现在有以下代码: 不幸的是,它在最后一行抱怨Gson类型的fromJson(String,Type)方法不适用于参数(JSONArray,Type)。我真的不知道该怎么解决。 有人知道我该怎么解决吗? 问题答案: 如果您在此处看到答案,您会注意到该方法中的第一个参数是(json对
问题内容: 我有以下格式的行: 现在,我要在文件中写入以下内容: 基本上将上面转换成jsonarray? Python中是否有内置方法,库或函数可将数组“转储”到json数组中? 另请注意,我不希望在文件中序列化“ L”。 问题答案: 使用该模块生成JSON输出: 这会将JSON结果直接写入文件(如果文件已经存在,则替换任何先前的内容)。 如果您需要Python本身中的JSON结果字符串,请使用(