首先你的 [{"key":"1"},{"key":"2"}] 是个 json 数组格式
如果是简单的json 格式, 比如 "{\"key1\":\"1\",\"key2\":\"2\"}"
那么你可以使用 下面的示例:
public static void main(String[] args){
String jsonString = "{\"key1\":\"1\",\"key2\":\"2\"}";
//String str = "[{\"key1\":\"1\"},{\"key2\":\"2\"}]";
Map<String, Object> map = toMap(jsonString);
for (Map.Entry<String, Object> entry : map.entrySet()){
String key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + ":" + value);
}
}
@SuppressWarnings("unchecked")
public static <T> Map<String, T> toMap(String json){
Map<String, T> map = new HashMap<String, T>();
JSONObject jsonObject = JSONObject.fromObject(json, new JsonConfig());
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()){
String key = keys.next();
Object value = jsonObject.get(key);
map.put(key, (T) value);
}
return map;
}
执行结果:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/bba1cd11728b4710e595ab52cbcec3fdfd0323f1?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
你这种数组格式, 转成 map 那么 同名的key 会覆盖的....