我将此作为部分JSON:
"nextStages":[1]
我在Java中有这个:
private List<Integer> nextStages;
.....
public List<Integer> getNextStages() {
return nextStages;
}
public void setNextStages(List<Integer> nextStages) {
this.nextStages = nextStages;
}
我收到此错误:
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException:
Cannot construct instance of `com.my.workflow.bean.json.StageObject` (although at least one Creator exists): no int/Int-argument constructor/factory method to deserialize from Number value (1)
那么我该如何进行正确的序列化/反序列化?
答案 0 :(得分:1)
您需要发布整个JSON
和Classes
,以便我们了解您的错误。
这对我来说很好用:
<强> test.json 强>
{
"nextStages":[1]
}
<强> StageObject.java 强>
public class StageObject {
private List<Integer> nextStages;
public List<Integer> getNextStages() {
return nextStages;
}
}
这里我正在阅读JSON文件,将其映射到StageObject并将其写入输出。
public class ReadTestJSON {
public static void main(String[] args)
throws IOException
{
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
StageObject stageObject = mapper.readValue(new File("test.json"), StageObject.class);
mapper.writeValue(System.out,stageObject);
}
}
<强>输出:强>
{
"nextStages" : [ 1 ]
}
希望这有帮助。