HashMap<String, Integer> map = new HashMap<>();
map.put("ID", 1);
map.put("ID", 2);
map.put("ID", 3);
JSONObject jsonObject = new JSONObject(map);
Log.e("JSON", jsonObject.toString());
OutPut:E / JSON:{“ID”:3}它很有趣!!!!
我希望得到像
这样的东西{"ID":1},{"ID":2},{"ID":3}
答案 0 :(得分:1)
那是对的。如果密钥已退出,则Map#put
会覆盖该值。在你的情况下:
HashMap<String, Integer> map = new HashMap<>();
map.put("ID", 1);
map.put("ID", 2);
map.put("ID", 3);
您正在重复使用密钥"ID"
。您的地图只包含一对key/value
ID/3
。从文档(HashMap#put)
将指定的值与此映射中的指定键相关联。如果 地图以前包含键的映射,旧值是 替换。
另一方面,相同的json对象不能多次包含相同的密钥。
答案 1 :(得分:1)
Json和地图是基于密钥的。
您的对象键必须唯一,否则将被替换。
您应该使用不同的键:
HashMap<String, Integer> map = new HashMap<>();
map.put("ID_1", 1);
map.put("ID_2", 2);
map.put("ID_3", 3);
或使用地图数组。