java - 想要隐藏由 Jackson 映射到 JSON 的对象的某些字段

标签 java json jackson

我有一个要使用 Jackson 映射到 JSON 的 User 类。

public class User {
    private String name;
    private int age;
    private int securityCode;

    // getters and setters
}

我使用 - 将其映射到 JSON 字符串

User user = getUserFromDatabase();

ObjectMapper mapper = new ObjectMapper();   
String json =  mapper.writeValueAsString(user);

我不想映射 securityCode 变量。有没有办法配置映射器以使其忽略此字段?

我知道我可以编写自定义数据映射器或使用 Streaming API,但我想知道是否可以通过配置来实现?

最佳答案

你有两个选择:

  1. Jackson 致力于字段的 setter-getter。因此,您可以删除要在 JSON 中省略的字段的 getter。 (如果您在其他地方不需要 setter/getter 。)

  2. 或者,您可以使用 @JsonIgnore annotation of Jackson在该字段的 getter 方法上,您会在结果 JSON 中看到没有这样的键值对。

    @JsonIgnore
    public int getSecurityCode(){
       return securityCode;
    }
    

关于java - 想要隐藏由 Jackson 映射到 JSON 的对象的某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708386/

相关文章:

javascript - 对嵌套的对象数组进行分组

java - 无法在 Gson 自定义解串器中初始化 Android.Util.Pair

java - 如果在使用 jackson objectmapper 反序列化时字符串不是双引号,则抛出错误

java - 为什么我收到 "Trigger' s 相关的作业名称不能为空” quartz 错误

java - 使用 GSON 自定义解析 JSON 字段

java - 如何在文件中使用附加功能

java - 删除 xsi :type information from xml/json JAXB?

java - 使用 Jackson 将 JSON 反序列化为多态类型 - 一个完整的示例给了我一个编译错误

java - 静态 block 中的 getResourceAsStream 有时返回 null

java - 即时创建自定义对象