public static void test02(){
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("data.student.name", "xiaoming");
hashMap.put("data.student.age", "24");
hashMap.put("data.sign", "xiari");
JSONObject jsonObject = assembleJsonFromMap(hashMap);
System.out.println(jsonObject.toString());
}
public static JSONObject assembleJsonFromMap(Map<String, String> map) {
JSONObject jsonObject = new JSONObject();
for (Map.Entry<String, String> entry : map.entrySet()) {
String keyPath = entry.getKey();
String value = entry.getValue();
assembleJsonProperty(jsonObject, keyPath, value);
}
return jsonObject;
}
private static void assembleJsonProperty(JSONObject jsonObject, String keyPath, String value) {
String[] keys = keyPath.split("\\.");
JSONObject current = jsonObject;
for (int i = 0; i < keys.length - 1; i++) {
String key = keys[i];
if (!current.containsKey(key)) {
current.put(key, new JSONObject());
}
current = current.getJSONObject(key);
}
current.put(keys[keys.length - 1], value);
}