使用Jackson库序列化字符串列表时,它会正确提供一个JSON字符串数组:
<mapper>.writeValue(System.out, Arrays.asList("a", "b", "c"));
[ "a", "b", "c" ]
但是,字符串在我们的代码中被类包装/封闭:
public static class StringWrapper {
protected final String s;
public String getS() {
return s;
}
public StringWrapper(final String s) {
this.s = s;
}
}
序列化“字符串包装器”列表时,我希望具有与上述相同的输出。现在我得到:
<mapper>.writeValue(System.out, Arrays.asList(new StringWrapper("a"), new StringWrapper("b"), new StringWrapper("c")));
[ {
"s" : "a"
}, {
"s" : "b"
}, {
"s" : "c"
} ]
最方便的方法是什么?如果可能,反序列化也应起作用。
最佳答案
您可以在单个getter上使用@JsonValue
@JsonValue
public String getS() {
return s;
}
在javadoc中,