Liekkas_BX 2017-07-27 08:25 采纳率: 0%
浏览 19997
已采纳

SpringMVC 中@RequestBody 注解的List<>参数如何传递?解决了立马给C币!

Controller的请求方法的一个参数是这样的:
@RequestBody(required=true) List idList,
前端的json应该是怎样的?
这种不行:{"idList":[10,11,12]};
这种也不行:[10,11,12]

  • 写回答

5条回答 默认 最新

  • Liekkas_BX 2017-07-28 02:34
    关注

    你们的回答我都看过了,事实上Controller的方法参数里不能直接是List,Map等集合,需要把他们封装在一个实体类型中,用该实体类型作为参数,如:
    @RequestBody(required=true) UserIdList idList
    UserIdList为实体类型,里面有个List类型的属性(假设名为ids,且有对应的getter、setter方法,前端传的json数据应该用数组(对应List):

     {
        "ids": [
            {
                "id": 15
            },
            {
                "id": 16
            }
        ]
    }
    

    上面UserId也为一个实体,里面只有一个Long类型的属性id,对应上面json中的id。
    如果UserIdList里面的属性类型直接为List的话,json格式应该是下面这个,没试过:

     {
        "ids": [ 15,16 ]
    }
    

    总结:json里面的数组对应List,数组里面的元素(基本类型或json对象)对应List的元素(基本类型或实体类)
    参考:
    SpringMVC Controller各种参数绑定

    2枚C币我就自己收了哈!多谢各位的回答!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 古人诚不QI我 2017-07-27 14:19
    关注

    var str = {10,11,12};

    data:{"idList":str}

    评论
  • 关注

    {"idList":{10,11,12]}},你这list<>尖括号里面有什么对应的类吗,

    评论
  • 再写三行 2017-07-27 10:55
    关注

    {"List[0]":1,"list[1]":2}

    评论
  • CodingAnHour 2017-07-28 02:22
    关注

    直接在后台把list 转成json 在返回给前台即可
    List list = new ArrayList();
    list.add("abc");
    list.add("123");

        //list转成json
        String json =JSONArray.fromObject(list).toString();
        System.out.println(json);  
        //运行:["abc","123"]
    
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥30 频率与占空比均可调的方波发生器
  • ¥15 VB6.0中PICTUREBOX加载本地图片无法显示
  • ¥100 关于游戏app session获取的问题
  • ¥15 MYSQL数据库建表
  • ¥15 爬虫程序爬取TTGChina网站文章代码
  • ¥35 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
  • ¥15 如何用下图方法在AMESim中搭建离心泵模型
  • ¥15 C#连接服务器,请求时报Ssl/Tsl未能建立安全通道
  • ¥15 xcode15build的c++ dylib在10.15上不兼容
  • ¥15 CPLD如何实现在线逻辑分析