java - 将java转换为Json时是否可以忽略内部类名和变量

标签 java json

我正在尝试创建一个 json,其中外部类对象具有所有内部类的字段,但我不希望 json 中包含内部类的对象。

我试过这个:

public class College {
    Student student;

    class Student {
        int id;
        String name;
    }
}

实际结果:

{
  "college" {
      "student" {
          "id" : "",
          "name" : ""
      }
  }
}

期望:

{
  "college" {
      "id" : "",
      "name" : ""
  }
}

最佳答案

嗯,它看起来不像是正确的 json。 如果您使用的是 jackson 库,请使用 @JsonUnwrapped 注释

如果您想要的结果与您预期的类似...如下所示:


大学类(class):

class College {
    @JsonUnwrapped
    Student student;

    public Student getStudent() {
        return student;
    }

    public void setStudent(Student student) {
        this.student = student;
    }
}


学生类(class):

class Student {
    String id;
    String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}


测试代码:

class JacksonTest {
    @Test
    public void objToJsonTest() {
        Student student = new Student();
        College college = new College();
        college.setStudent(student);

        ObjectMapper mapper = new ObjectMapper();
        mapper.enable(SerializationFeature.WRAP_ROOT_VALUE);

        String s = null;
        try {
            s = mapper.writeValueAsString(college);
        } catch (Exception e) {
            // handle exception
        }
        // print json format string
        System.out.println(s);
    }
}


结果:

{"College":{"id":"","name":""}}

没有@JsonUnwrapped注解:

{"College":{"student":{"id":"","name":""}}}

关于java - 将java转换为Json时是否可以忽略内部类名和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55760260/

相关文章:

java - 使用 Hibernate 删除父行时如何删除所有子行?

json - 如何通过对象的属性对 json 或 jsonb 值中的数组中的对象进行排序?

python - 如何在 python 中解析 json 字符串而不修改它?

javascript - 如何从某些对象中过滤 json 对象。 (仅选择部分值)

java - 圆与线段相交

java - 使用 Java 解析 XML DOM

java - 如何修复模糊的自定义标记 Android google map api

Java - 在数组中搜索矩形(这样做的有效方法)

java - JSON 简单解析器中超过 LONG.MAX_VALUE

json - 如何使用 jq 命令向 JSON 对象添加字段?