You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中@RequestBody接收多维数组列表报400错误的解决咨询

解决Spring Boot多维数组列表请求体接收的400错误问题

问题根源

你的请求JSON结构和实体类定义不匹配,同时存在类型转换问题:

  1. 结构不匹配:实体类中boundaries是List<PolygonRequest>,每个PolygonRequest需要一个boundary字段来承载二维数组;但请求JSON里boundaries直接是二维数组的集合,没有嵌套boundary键。
  2. 类型不兼容:JSON中的坐标是数值类型(如-5.2),但实体类中boundary定义为String[][],Spring默认无法将数值自动转为字符串数组。

解决方案

方案一:修改请求JSON结构,匹配实体类

调整JSON,让boundaries的每个元素是包含boundary字段的对象,同时修正实体类的类型适配数值:

  1. 修改实体类类型:
@Getter
@Setter
public class CreateRequest {

    private String id;
    private List<PolygonRequest> boundaries;

    @Getter
    @Setter
    public static class PolygonRequest {
        // 把String[][]改为double[][],适配JSON中的数值类型
        private double[][] boundary;
    }

}
  1. 调整后的请求JSON:
{
    "id": "Zone 112",
    "boundaries": [
        {
            "boundary": [
                [-5.2,-6.2],
                [-4.5,-7.8]
            ]
        },
        {
            "boundary": [
                [7.2,-1.6],
                [-3.3,-8.1]
            ]
        }
    ]
}

方案二:修改实体类,匹配现有JSON结构

如果不想改动请求JSON,直接简化实体类,让boundaries直接对应JSON中的二维数组集合:

@Getter
@Setter
public class CreateRequest {

    private String id;
    // 直接用List<double[][]>接收JSON中的二维数组集合
    private List<double[][]> boundaries;

}

验证

修改完成后重新发送请求,Spring就能正确解析请求体,不会再返回400错误。

内容的提问来源于stack exchange,提问作者Yasas Ranawaka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 06:06:29