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"])
...

如何反序列化数组

我终于找到问题了。我没看到班上有两个setter。Jackson可能用错了。

我只需要把注释@JsonSetter("target")放在setter上面,它接受一个数组,告诉Jackson使用好的那个。

public void setTarget(String target) {
this.target = new String[]{target};
}
@JsonSetter("target")
public void setTarget(String[] target) {
this.target = target;
}

最新更新