嗨,我已经编写了一个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]}
有人可以帮我吗
答案 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)
{
}