簡體   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