如何将请求正文中的列表值发送给Rest Api

时间:2019-07-30 07:08:14

标签: java json rest spring-boot postman

嗨,我已经编写了一个Rest Service来接受Long值列表作为通过RequestBody的输入,下面给出了该代码的代码:

@DeleteMapping("/files")
public ResponseEntity<?> deletefiles(@RequestBody List<Long> ids) {
     fileService.deleteSelectedfiles(ids);
     return ResponseEntity.ok().build();
}

当我尝试从邮递员访问上述网址时,出现以下错误:

"JSON parse error: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: [![enter image description here][1]][1]Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token\n at [Source: (PushbackInputStream); line: 1, column: 1]"

在邮递员中,我以以下格式将数据作为原始数据发送

{"ids": [1 ,2]} 

有人可以帮我吗

2 个答案:

答案 0 :(得分:4)

您的有效载荷应该是

[1 ,2]

代替

{"ids": [1 ,2]}

第一个选项是json数组,第二个示例是json正文。 您可以将第一个与@RequestBody List<Long> ids一起使用,或将第二个与@RequestBody YourData data一起使用,其中

class YourData {
    List<Long> ids
}

答案 1 :(得分:0)

@RequestMapping(YOUR_REQUEST_MAPPINGS)
public void testArrayOfValues(@RequestParam List<String> values) 
{
  
}