繁体   English   中英

如何使用 Java 中的 jackson 将对象读/写到 JSON 文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM