fastjson 嵌套多层对象以后转成JSONString数据异常

7eumitmz  于 2022-10-21  发布在  其他
关注(0)|答案(1)|浏览(270)

测试代码如下:

public static void main(String[] args) {
    // 学生对象
    Map<String,String> studentMap = new HashMap<>();
    studentMap.put("name", "张三");
    studentMap.put("sex", "女");
    // 班级对象
    Map<String, Map<String,String>> classMap = new HashMap<>();
    classMap.put("学生1", studentMap);
    classMap.put("学生2", studentMap);
    // 学校对象
    Map<String, List<Map<String, Map<String,String>>>> schoolMap = new HashMap<>();
    schoolMap.put("class", Arrays.asList(classMap));
    // 使用fastJSON转成JSON
    String fastJSON = JSONObject.toJSONString(schoolMap);
    log.info("fastJSON = {}", fastJSON);
}

打印结果如下:

fastJSON = {"class":[{"学生2":{"sex":"女","name":"张三"},"学生1":{"$ref":"$.class[0].学生2"}}]}

正常的应该是:

fastJSON = {"class":[{"学生2":{"sex":"女","name":"张三"},"学生1":{"sex":"女","name":"张三"}}]}

huus2vyu

huus2vyu1#

classMap.put("学生1", new HashMap<String, String>(studentMap));
    classMap.put("学生2", new HashMap<String, String>(studentMap));

这样才对

相关问题