有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将请求体中的列表值发送到RESTAPI

您好,我已经编写了一个Rest服务,通过RequestBody接受长值列表作为输入,其代码如下所示:

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

当我尝试从邮递员处点击上述url时,我得到以下错误:

"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) 个答案

  1. # 1 楼答案

    @RequestMapping(YOUR_REQUEST_MAPPINGS)
    public void testArrayOfValues(@RequestParam List<String> values) 
    {
      
    }
    
  2. # 2 楼答案

    您的有效载荷预计为

    [1 ,2]
    

    而不是

    {"ids": [1 ,2]}
    

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

    class YourData {
        List<Long> ids
    }