java 将Sping Boot DTO转换为json以仅包含JsonProperty

j2cgzkjk  于 2023-11-15  发布在  Java
关注(0)|答案(2)|浏览(114)
@JsonPropertyOrder({
     "aaaa",
     "bbb",
     "cccc"
     })

 public class myDto {
 
     @Id
     private String id;
 
     @Valid
     @NotNull
     @JsonProperty("aaaa")
     private String aaaa;
 
     @Valid
     @NotNull
     @JsonProperty("bbbb")
     private List<String> bbbb;
 
     @Valid
     @NotNull
     @JsonProperty("cccc")
     private List<String> cccc;
 
    // getter and setter for above 4
 }

字符串
我想将其转换为JSON以仅包含字段aaa,bbbb,ccc。预期输出:{"aaaa":"1","bbbb":["1"],"cccc":["1"]}
我尝试使用以下方法创建JSON,但它也包括ID字段,Meta,链接字段。

String test = objectMapper.writeValueAsString(myDto); 
 configuration = new JSONObject(test);


输出:{"aaaa":"1","bbbb":["1"],"cccc":["1"],"meta":null,"links":null,"id":null}
预期输出:{"aaaa":"1","bbbb":["1"],"cccc":["1"]}

iih3973s

iih3973s1#

在不希望序列化的字段上使用注解@JsonIgnore

public class myDto {

     @Id
     @JsonIgnore
     private String id;

字符串
更多关于注解@JsonIgnore的信息。

b4qexyjb

b4qexyjb2#

您可以将ObjectMapper设置为不包括JSON中返回空值的字段。

objectMapper.setSerializationInclusion(Include.NON_NULL)

字符串

相关问题