[英]How to read/write Object to JSON file with jackson in Java
public class Town implements Serializable{
private Person p;
private String hello;
private long number;
}
public class Person implements Serializable {
private String firstName;
private double legs;
private String lastName;
}
我正在尝试使用
ObjectMapper mapper = new ObjectMapper();
ObjectWriter writer = mapper.writer(new DefaultPrettyPrinter());
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file, true)));
writer.writeValue(out, townobj);
像这样产生Json。
{
"p" : {
"firstName" : "John",
"amount" : 6860.0,
"lastName" : "Smith"
},
"hello" : "qwiejiowcqnio",
"number" : 1380.0
}
{
"p" : {
"firstName" : "Sam",
"amount" : 623460.0,
"lastName" : "Smith"
},
"hello" : "qwiej2342io",
"number" : 1330.0
}
当我尝试使用
List<Town> myObjects;
myObjects = mapper.readValue(new File("test.json"), new TypeReference<List<Town>>(){});
我收到以下错误:
无法从 START_OBJECT 令牌反序列化 java.util.ArrayList 的实例
您文件中的 JSON 不是有效数组,无法将其反序列化为List<Town>
。 您需要将列表序列化为 JSON,以便将其反序列化回列表:
writer.writeValue(out, Arrays.asList(townobj));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.