杰克逊没有序列化哈希图
Jackson doesn't serialize hashmap
我有这个方法:
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<>();
}
Jackson 将在 public 字段或 public getter 和 setter 上施展魔法。我建议您将对象的字段设为私有以便更好地封装,并添加 public getters/setters 以允许 jackson de/serialize 它。
我个人喜欢使用 jackson 注释来明确对象的用途,这样您就可以完全控制 jackson 创建的字段的命名,而不必创建非惯用的 getter/setter 或变量名
我有这个方法:
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<>();
}
Jackson 将在 public 字段或 public getter 和 setter 上施展魔法。我建议您将对象的字段设为私有以便更好地封装,并添加 public getters/setters 以允许 jackson de/serialize 它。
我个人喜欢使用 jackson 注释来明确对象的用途,这样您就可以完全控制 jackson 创建的字段的命名,而不必创建非惯用的 getter/setter 或变量名