-
json转Map
- 用fastJSON最便捷
private static Map<String,Object> toMap(String jsonStr) {
com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(jsonStr);
HashMap<String, Object> map = new HashMap<>();
Set<Map.Entry<String, Object>> entries = jsonObject.entrySet();
for (Map.Entry<String, Object> entry : entries) {
map.put(entry.getKey(),entry.getValue());
}
return map;
}
- 用原生的json
public static Map<String,Object> jsonToMap (String jsonStr) {
HashMap<String, Object> map = new HashMap<>();
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
for (Object key : jsonObject.keySet()) {
Object obj = jsonObject.get(key);
if (obj instanceof JSONArray) {
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
Iterator<JSONObject> iterator = ((JSONArray) obj).iterator();
while (iterator.hasNext()) {
JSONObject next = iterator.next();
list.add(jsonToMap(next.toString()));
}
map.put(key.toString(),list);
log.info("key.toString:" + key.toString() + " " + "list:" + list);
} else {
map.put(key.toString(), obj);
log.info("key.toString:" + key.toString() +" "+ "obj:" + obj);
}
}
return map;
}
-
map转Json
- 方法用很多种,我采用的是下面这种
public static String mapToJson(Map<String, Object> map) {
Set<String> keySet = map.keySet();
String key;
Object value;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("{");
for (Iterator<String> iterator = keySet.iterator(); iterator.hasNext(); ) {
key = iterator.next();
value = map.get(key);
stringBuilder.append("\"" + key + "\"" + ":" + "\"" + value + "\"");
if (iterator.hasNext()) {
stringBuilder.append(",");
}
}
stringBuilder.append("}");
return stringBuilder.toString();
}