我正在使用Java。

我有以下课程:

class MyClass{
    @JsonProperty("test")
    String test;

    String myPrivateTest;
}


我正在使用Jackson ObjectWriter将JSON对象写入文件/作为字符串,如下所示:

ObjectWriter writer = objMapper.writer(new DefaultPrettyPrinter());
writer.writeValue(new File(path), myObject);


我只想写入文件test成员,而不要写入myPrivateTest,该怎么办?

编辑

我已经尝试过:

class MyClass{
        @JsonProperty("test")
        String test;

        @JsonIgnore
        String myPrivateTest;
    }




@JsonIgnoreProperties({"myPrivateTest"})
class MyClass{
    @JsonProperty("test")
    String test;

    String myPrivateTest;
}


而且它仍然将myPrivateTest写入文件

最佳答案

使用Jackson 2.9.6

只需将@JsonProperty添加到所需字段即可。

public class MyClass {

    @JsonProperty("test")
    String test;

    String myPrivateTest;

    public static void main(String[] args) throws IOException {

        ObjectMapper objectMapper = new ObjectMapper();
        MyClass c = new MyClass();
        c.test = "HELLO";
        c.myPrivateTest = "WORLD";
        System.out.println(objectMapper.writeValueAsString(c));
    }
}


输出:

{"test":"HELLO"}


String myPrivateTest被正确忽略

07-24 09:19