小编May*_*her的帖子

Jackson 不会将新的 JSON 对象附加到现有的 Json 文件中

我正在尝试构建一个 Springboot 应用程序,允许从 Postman 插入 Json 对象并将其保存到包含其他数据的现有 json 文件中。我是杰克逊的新手,所以也许我错过了什么?

这是我的 json 文件的样子:

[
   {
      "Name":"After Dark",
      "Author":"Haruki Murakami"
   },
   {
      "Name":"It",
      "Author":"Stephen King"
   }
]
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

@PostMapping("/insertBook")
public void insertBook(@RequestBody Book book)  {
    File booksJsonFile = Paths.get(this.getClass().getResource("/books.json").toURI()).toFile();
    objectMapper.writeValue(booksJsonFile, book);
}
Run Code Online (Sandbox Code Playgroud)

它会插入到一个空文件中,但不会附加到现有的 json 文件中。

我也尝试过这个:

@PostMapping("/insertBook")
public void insertBook(@RequestBody Book book) throws URISyntaxException {

    try {
        File file = Paths.get(this.getClass().getResource("/books.json").toURI()).toFile();
        FileWriter fileWriter = new FileWriter(file, true);
        SequenceWriter seqWriter = objectMapper.writer().writeValuesAsArray(fileWriter);
        seqWriter.write(book);

        seqWriter.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我从邮递员发送的内容: …

java jackson maven spring-boot postman

2
推荐指数
1
解决办法
1431
查看次数

标签 统计

jackson ×1

java ×1

maven ×1

postman ×1

spring-boot ×1