Java 杰克逊没有';t序列化哈希映射

Java 杰克逊没有';t序列化哈希映射,java,json,jackson,Java,Json,Jackson,我有这个方法: private String serializeToJson(T item) { String json; ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); try { json = ow.writeValueAsString(item); } catch (IOException e) { e.printStackTr

我有这个方法:

private String serializeToJson(T item) {
    String json;
    ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
    try {
        json = ow.writeValueAsString(item);
    } catch (IOException e) {
        e.printStackTrace();
        json = "";
    }
    return json;
}
关于本项目:

然而
json
等于:

{
  "saveDate" : "12:29:29 29-Mar-02015"
}
为什么
failureDict
没有序列化

这是一项:

public class FailedResponses {


    HashMap<String, Set<String>> failuresDict;
    public String saveDate;

    public FailedResponses() {

        failuresDict = new HashMap<>();
    }
公共类失败响应{
HashMap故障诊断码;
公共字符串保存日期;
公共失败响应(){
failuresDict=新HashMap();
}

Jackson将在公共字段或公共getter和setter上发挥神奇的作用。我建议您将对象的字段设置为私有以便更好地封装,并添加公共getter/setter以允许Jackson对其进行反序列化


我个人喜欢使用jackson注释来明确对象的用途,这样您就可以完全控制jackson创建的字段的命名,而不必创建非惯用的getter/setter或变量名

请显示类或项目。我已经添加了代码。感谢Sadd public getter/set为你的字段添加一个新的密码,并将字段设置为私有。这不仅是更好的封装,而且意味着jackson可以做到这一点。请添加一个答案,以便我可以将其标记为已解决