如何使用请求正文添加数据

时间:2018-07-21 21:33:06

标签: java json post request

您好,我有一个任务要向商店添加一本书。我有这样的动作:

@PostMapping("/")
public String addBook(@RequestParam Long id, @RequestParam String isbn, @RequestParam String title,
                      @RequestParam String author, @RequestParam String publisher, @RequestParam String type) {
    memoryBookService.addBook(new Book(id,isbn,title,author,publisher,type));
    return "redirect:/";
}

但我不应该以这种方式添加这本书,而应该在下面使用类似的内容。问题是我不知道如何将参数从post方法传递给我的构造函数,以使用此RequestBody添加新书。有人可以向我解释吗?

 @PostMapping("/")
public String addBook(@RequestBody Book book) {
// code
    return "redirect:/";

这是我的JSON:

      {"id": "1L" 
      "isbn": "9788324631766"
      "title": "Thinking in Java"  
      "author": "Bruce Eckel"
      "publisher": "Helion"
      "type": "programming"
       }

1 个答案:

答案 0 :(得分:1)

Jersey或您正在使用的任何框架正在为您繁重的工作,使您可以从输入json创建Book对象。以Book对象的形式获取反序列化对象后,就可以使用getter来获取id,isbn和其他信息

book.getId()
book.getIsbn()

但是,您可以使用POSTMAN或cURL将json发送到您的服务。

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{"id": "1L", "isbn": "9788324631766","title": "Thinking in Java","author": "Bruce Eckel","publisher": "Helion", "type": "programming" }' http://localhost:8080/<servicename>