Java Json 格式轉化 —— 將 A.B.C 轉成 {"A":[{"B":[{"C":"XXX"}]}]}
阿新 • • 發佈:2018-12-07
public class ResultDemo { /** * 將 A.B.C 變成如下格式 * {"A":[{"B":[{"C":"XXX"}]}]} */ public static void main(String args[]){ String module = "第一層.第二層.第三層"; String content = "最後一層"; String result; String[] split = module.split("\\."); Map<String,Object> resultMap = new HashMap<>(); for (int i = 0; i < split.length; i++) { if (i == split.length-1){ resultMap.put(split[i],content); }else{ resultMap.put(split[i],new ArrayList<>()); } } if (split.length > 1){ for (int i = split.length-2; i >= 0 ;i-- ) { List<Object> list = (ArrayList)resultMap.get(split[i]); Map<String,Object> tempMap = new HashMap(); tempMap.put(split[i+1],resultMap.get(split[i+1])); list.add(tempMap); } //拼接最後一層 String str = new Gson().toJson(resultMap.get(split[0])); JsonArray jsonArray = new JsonParser().parse(str).getAsJsonArray(); JsonObject resultObj = new JsonObject(); resultObj.add(split[0],jsonArray); result = new Gson().toJson(resultObj); } else { JsonObject resultObj = new JsonObject(); resultObj.addProperty(split[0],resultMap.get(split[0]).toString()); result = new Gson().toJson(resultObj); } System.out.println(result); } }