重命名 MappingJacksonJson使用的 JSON 字段春季查看

2022-09-02 23:52:47

我正在使用 MappingJacksonJsonView 将类序列化为 JSON,但是,我希望能够根据 getter 名称从默认名称重命名一些字段。

这是因为我必须输出诸如“delete_url”和“delete_type”之类的字段名称才能上传jQuery文件。我正在使用@Jsonserialize注释来手动选择要序列化的字段。

@JsonAutoDetect(getterVisibility = Visibility.NONE)
public interface Picture {

    @JsonSerialize
    String getName();

    @JsonSerialize
    String getDelete_url();

    ...

例如,我被迫调用一个方法,虽然我想调用它,但在序列化为JSON时仍然输出密钥。getDelete_url()getDeleteUrl()"delete_url"


答案 1

您应该能够使用@JsonProperty获得资格。

@JsonAutoDetect(getterVisibility = Visibility.NONE)
public interface Picture {

  @JsonSerialize
  @JsonProperty("name")
  String getName();

  @JsonSerialize
  @JsonProperty("delete_url")
  String getDeleteUrl();

  //...

答案 2

您是否尝试过使用@JsonProperty注释?

“定义逻辑属性的名称,即要用于属性的 Json 对象字段名称:如果为空 String(这是默认值),则将使用已注释的字段的名称。