平铺json转层级json

把以下json对象
{"msg_flowid":"22","msg_opt_nu":"22","msg_chk_in":"22","msg_chk_acc":"22","msg_chk_out":"22"}
按照下划线分割,变成以下具有层级关系的json对象
{"msg":{"flowid":"22","opt":{"nu":"22"},"chk":{"in":"22","acc":"22","out":"22"}}}
该怎么写呢?
 

1.创建3个对象,分别是msg,opt,chk,把读取的数据设置到对象中,把opt,chk定义为msg的成员变量,设置值后转换为json对象就可以了,

2.或者使用fastjson等工具类,JsonObject对象设置也可以。

3.如果是前端处理就定义3个js对象,做法是一样的。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

Map<String, Object> map = new HashMap<>();
        String json = "{'msg_flowid':'22','msg_opt_nu':'22','msg_chk_in':'22','msg_chk_acc':'22','msg_chk_out':'22'}";
        JSONObject jsonObject = JSON.parseObject(json);


        Map<String, Object> map1 = new LinkedHashMap<>();
        map1.put("flowid", jsonObject.get("msg_flowid").toString());

        Map<String, Object> map2 = new HashMap<>();
        map2.put("nu", jsonObject.getString("msg_opt_nu"));
        map1.put("opt", map2);

        Map<String, Object> map3 = new LinkedHashMap<>();
        map3.put("in", jsonObject.getString("msg_chk_in"));
        map3.put("acc", jsonObject.getString("msg_chk_acc"));
        map3.put("out", jsonObject.getString("msg_chk_out"));
        map1.put("chk", map3);

        map.put("msg", map1);
        System.out.println(JSON.toJSONString(map));