如何解决Jackson ObjectMapper 反序列化一个包含对象数组的对象
我序列化了这种对象:
public class MyObject implements Serializable {
private String type;
...
private String[] target;
//getters and setters
}
但是当我尝试反序列化 MyObject
时,由于 target
数组而出现错误。
java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_ARRAY token
at [Source: UNKNOWN; line: -1,column: -1] (through reference chain: java.util.ArrayList[0]->MyObject["target"])
...
如何反序列化数组?
解决方法
我终于找到了问题所在。我没有看到我班上有 2 个二传手。杰克逊可能用错了。
我只需将注释 @JsonSetter("target")
放在接受数组的 setter 上方,以告诉 Jackson 使用好的数组。
public void setTarget(String target) {
this.target = new String[]{target};
}
@JsonSetter("target")
public void setTarget(String[] target) {
this.target = target;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。