【问题标题】:how to get list of objects via requestbody in spring boot api如何通过spring boot api中的requestbody获取对象列表
【发布时间】:2016-05-17 22:01:22
【问题描述】:

通过控制器中的@RequestBody获取对象列表,并处理list中的每个对象以执行业务逻辑。

我试过了,但没用

@RequestMapping(value="/updateservicetype", method=RequestMethod.POST,produces="application/json")
    public @ResponseBody ServiceTypesMessage updateServiceType(@RequestBody List<BarberServiceType> serviceTypes,final HttpServletResponse response){

还尝试了以下方法:

@RequestMapping(value="/updateservicetype", method=RequestMethod.POST,produces="application/json")
    public @ResponseBody ServiceTypesMessage updateServiceType(@RequestBody BarberServiceType[] serviceTypes,final HttpServletResponse response){

【问题讨论】:

  • 你用一些 REST 客户端尝试过你的代码吗,有很多附加组件。我认为你以错误的方式发送了一些东西,因为数组肯定可以工作,我自己也试过了。启用调试日志记录并且没有错误,很难找到真正发生的事情。
  • "status":400,"error":"Bad Request","exception":"org.springframework.http.converter.HttpMessageNotReadableException","message":"无法读取 JSON:可以不在 [Source: java.io.PushbackInputStream@6eda930c; line: 1, column: 1] 的 START_OBJECT 令牌中反序列化 com.lob.domain.BarberServiceType[] 的实例;嵌套异常是 com.fasterxml.jackson.databind .JsonMappingException: 无法从 [Source: java.io.PushbackInputStream@6eda930c; line: 1, column: 1]","path":" 的 START_OBJECT 令牌中反序列化 com.lob.domain.BarberServiceType[] 的实例/lob/updateservicetype"},
  • 不要在 cmets 中添加错误,编辑您的主帖子并将其添加到那里,完整的日志。

标签: spring spring-mvc spring-boot


【解决方案1】:

以下对我有用

@RequestMapping(value = "/payments", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody List<Payment> batchCreate(@RequestBody List<Payment> payments) {
  return paymentService.create(payments);
}

课程路径中需要 Jackson

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.6.0</version>
</dependency>

输入的Json是

[{"sort":"10-20-30","account":"1234"},{"sort":"10-20-30","account":"1234"}]

【讨论】:

    猜你喜欢
    • 2018-01-23
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 2017-08-23
    • 2015-03-24
    • 2017-09-28
    相关资源
    最近更新 更多