当前位置: 首页 > 知识库问答 >
问题:

带有Jackson响应的自定义JSON字段

佘单鹗
2023-03-14
{
    "field1": "res1",
    "field2": "res2",
    "field3": null
}

共有1个答案

司徒俊雄
2023-03-14

若要排除空值,可以使用

@JsonInclude(value = Include.NON_NULL)
public class YourClass {
}

并包含您可以使用的自定义值

public class Employee {
  private String name;
  @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = DateOfBirthFilter.class)
  private Date dateOfBirth;
  @JsonInclude(content = JsonInclude.Include.CUSTOM, contentFilter = PhoneFilter.class)
  private Map<String, String> phones;
}

public class DateOfBirthFilter {

  @Override
  public boolean equals(Object obj) {
      if (obj == null || !(obj instanceof Date)) {
          return false;
      }
      //date should be in the past
      Date date = (Date) obj;
      return !date.before(new Date());
  }
}

public class PhoneFilter {
  private static Pattern phonePattern = Pattern.compile("\\d{3}-\\d{3}-\\d{4}");

  @Override
  public boolean equals(Object obj) {
      if (obj == null || !(obj instanceof String)) {
          return false;
      }
      //phone must match the regex pattern
      return !phonePattern.matcher(obj.toString()).matches();
  }
}

参考了https://www.logicbig.com/tutorials/misc/jackson/json-include-customized.html

 类似资料:
  • 我现在的问题是,我到底能实现什么/如何实现这些,或者是否有一种方法来扩展ErrorDecoder,使我能够处理这些错误消息。我想我应该能够将它们放入解码器,甚至实现/覆盖HttpClient,但我不确定正确/最好的方法是什么。

  • 问题内容: 我继承了一些代码,这些代码最终将成为API调用的一部分。基于现有代码,该调用是使用access_token检索JSON代码的帖子。尽管这通常很简单,并且像其他所有API一样,但是此代码要求为客户机密提供一个自定义的httpheader字段。 我能够使用URLRequest等在Objective C中完成此工作,但是由于我正在创建对Web组件的调用,因此遇到了很多困难。 我正在使用一个非

  • 有没有一种方法可以使用Jackson JSON处理器来执行自定义字段级别的序列化?例如,我想让 注意,age=25被编码为数字,而favoritenumber=123被编码为字符串。Jackson将编组为一个数字。在这种情况下,我希望将favoriteNumber编码为字符串。

  • 问题内容: 有没有一种使用Jackson JSON Processor进行自定义字段级序列化的方法?例如,我想上课 序列化为以下JSON: 请注意,age = 25被编码为 数字, 而favoriteNumber = 123被编码为 string 。开箱即用的杰克逊将集结到一个号码。在这种情况下,我希望将favoriteNumber编码为字符串。 问题答案: 您可以实现自定义序列化器,如下所示:

  • 我对Spring很陌生。我有一个在Spring中编写的REST api,但我不知道如何使用自定义http响应代码返回JSON响应。 我返回一个JSON响应,如下所示: 但它总是显示200个http ok状态代码。 如何可能在void函数中返回JSON响应和自定义HTTP代码?