java将 json数组转map
发布网友
发布时间:2022-04-28 22:57
我来回答
共1个回答
热心网友
时间:2022-06-24 18:35
首先你的 [{"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;
}
执行结果:
你这种数组格式, 转成 map 那么 同名的key 会覆盖的....