springboot接口参数为List的问题

 更新时间:2023年11月03日 08:59:58   作者:小苹果1357  
这篇文章主要介绍了springboot接口参数为List的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

简单接口参数

springboot接口访问,如果是走http请求,那么参数会默认转换成键值对格式,或者是json字符串形式的。

今天就遇到一个场景,我需要一个list结构的参数,list里面又是对象,那我们该怎么传参呢?

我们不能再浏览器上直接拼接参数发请求了,例如:

这样的格式是不被允许的,请求会报错。

那么我们转换思路,既然是json格式的参数,那我们就传json格式

设置headers

Content-type 的值为application/json

组织传值参数list数据

在body中,传值参数,list 使用[]括起来

代码实现请求

public void queryLiveCourseInfoTest(){
   JSONArray jsonArray = new JSONArray();
   JSONObject json1 = new JSONObject();
   json1.put("dn","123");
   json1.put("bossCode","34455");
   jsonArray.add(json1);
   JSONObject json2 = new JSONObject();
   json2.put("dn","234");
   json2.put("bossCode","66666");
   jsonArray.add(json2);

   String arr = jsonArray.toJSONString();
   System.out.println("请求参数:"+arr);

   String url = nativUrl+"";
   try {
      HttpHeaders headers = new HttpHeaders();
      MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
      headers.setContentType(type);
      HttpEntity<ElecMeterDataApi> entity = new HttpEntity<ElecMeterDataApi>(arr,headers);
      String res = restTemplate.postForObject(url, entity, String.class);
      log.info("结果:"+res);
   } catch (RestClientException e) {
      log.error("请求异常" + e.getMessage());
   }
}

controller层设置两个注解@ResponseBody 和@RequestBody

@ResponseBody 没有该注解的时候,会发生postman 请求找不到error 404;

@RequestBody 没有该注解的时候,会发生参数值传输不过去;

这样我们就可以实现通过接口直接传递list对象数据。

其中,list中的对象,我们在传参数时只要组织的json格式的数据中,包含该对象的属性以及对应值,接口参数的对象就可以接收到该属性值。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用注解@Validated和BindingResult对入参进行非空校验方式

    使用注解@Validated和BindingResult对入参进行非空校验方式

    这篇文章主要介绍了使用注解@Validated和BindingResult对入参进行非空校验方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java Web学习之Cookie和Session的深入理解

    Java Web学习之Cookie和Session的深入理解

    这篇文章主要给大家介绍了关于Java Web学习之Cookie和Session的相关资料,需要的朋友可以参考下
    2018-04-04
  • 关于controller的异常处理及service层的事务控制方式

    关于controller的异常处理及service层的事务控制方式

    这篇文章主要介绍了关于controller的异常处理及service层的事务控制方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 详解Jackson的基本用法

    详解Jackson的基本用法

    Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个。虽然JDK自带了XML处理类库,但是相对来说比较低级,使用本文介绍的Jackson等高级类库处理起来会方便很多
    2021-06-06
  • springboot引入druid解析sql的过程

    springboot引入druid解析sql的过程

    在开发中,有时我们可能会需要获取SQL中的表名,那么因为不同的数据源类型SQL会存在部分差异,那么我们就可以使用alibaba 的druid包实现不同的数据源类型的sql解析,需要的朋友可以参考下
    2023-08-08
  • Java方法递归调用实例解析

    Java方法递归调用实例解析

    这篇文章主要介绍了Java方法递归调用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • SpringBoot集成Swagger构建api文档的操作

    SpringBoot集成Swagger构建api文档的操作

    这篇文章主要介绍了SpringBoot集成Swagger构建api文档的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • java 取交集方法retainAll的实现

    java 取交集方法retainAll的实现

    这篇文章主要介绍了java 取交集方法retainAll的实现操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java简单实现农夫过河问题示例

    Java简单实现农夫过河问题示例

    这篇文章主要介绍了Java简单实现农夫过河问题,简单描述了农夫过河问题的概念、原理并结合简单实例形式分析了java解决农夫过河问题的相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • Java基础之Maven详解

    Java基础之Maven详解

    这篇文章主要介绍了Java基础之Maven详解,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04

最新评论