spring接收json格式的多个对象参数(变通法)

如果使用spring mvc同客户端通信,完全使用json数据格式,需要如下定义一个RequestMapping

@Controller
public class TestController{
  @RequestMapping("\test")
  @ResponseBody
  public RetureResult test(@RequestBody User user){
    return new ReturnResult();
  }
}

这样,可以将json格式的数据转换为指定的对象user,比如{name:"test"},name为User类的属性值,也可以返回json格式的数据。

但是有时接收json格式数据时,我们可能需要将其转换为多个对象,以上方式是不支持在方法变量中直接定义多个传参的,以下方式是错误的。原因是request的body是以流的形式进行读取的,读取完一次后,便无法再次读取了。

@Controller
public class TestController{
  @RequestMapping("\test")
  @ResponseBody
  public RetureResult test(@RequestBody User user,@RequestBody Address address){
    return new ReturnResult();
  }
}

此时可使用一种变通的方法达到此目的。

在TestController.java文件中增加一个包装类

@Controller
public class TestController{
  @RequestMapping("\test")
  @ResponseBody
  public RetureResult test(@RequestBody Param param){
    return new ReturnResult();
  }
}
class Param{
  public User user;
  public Address address;
}

注意:类中属性必须为public;Param中的属性只能比json中的对象多,不能少。

此时传输的json数据格式变为{user:{name:"test"},address:{location:"新华路"}}。

由于只是在TestController中增加一个包装类,不会影响其他的类以及已经定义好的model类,因此可以非常方便的达到接收多个对象参数的目的。

时间: 2024-12-11 01:18:25

spring接收json格式的多个对象参数(变通法)的相关文章

.net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (二)

.net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (二) .net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (一) 上一篇主要是以Form键值对提交的数据,转为Json方式处理,有时我们直接以Body字串提交,我们要解决以下两种方式提交的取值问题: JObject $('#btn_add').click(function (e) { var a = $('#tb_departments').bootstrapTable(

spring mvc接收JSON格式的参数

1.配置spring解析json的库   <dependency>         <groupId>org.codehaus.jackson</groupId>         <artifactId>jackson-mapper-asl</artifactId>         <version>1.9.8</version>         <type>jar</type>         &

(转)json格式脚本转成对象

在测试杰夫接口编写脚本的时候,一般研发提供的入参是json格式的数据,但是调用接口的方法的时候需要传入对象,杰夫的jar包中本身带有将json转换成对象的功能,这样就不用我们自己将json转换为对象了,直接用杰夫自带的就可以了,希望该功能可以节省一定的工作量. 具体例子: //需要传入的json格式的数据 String paramFreightRequestjson="{\"pin\":\"test\",\"applyDate\":14

php接收json格式数据(text/xml)

在API服务中,目前流行采用json形式来交互. 给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据. 接收前端提交的json数据稍微复杂一点,原因是:PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型.因此,对型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之类

PHP接收JSON格式的数据

在API服务中,目前流行采用json形式来交互. 给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据. 接收前端提交的json数据稍微复杂一点,原因是:PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型.因此,对型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之类

jquery解析json格式数据的方法(对象、字符串)

相关函数 函数 描述 JSON.parse() 用于将一个 JSON 字符串转换为 JavaScript 对象. JSON.stringify() 用于将 JavaScript 值转换为 JSON 字符串. //data为字符串类型 则要将字符串类型转换成json数据类型 var jsondatas=eval("("+data+")"); 本文实例讲述了jquery解析json格式数据的方法.分享给大家供大家参考,具体如下: json数据是我们常用的一种小型的数据实

ASP.NET API(MVC) 对APP接口(Json格式)接收数据与返回数据的统一管理

话不多说,直接进入主题. 需求:基于Http请求接收Json格式数据,返回Json格式的数据. 整理:对接收的数据与返回数据进行统一的封装整理,方便处理接收与返回数据,并对数据进行验证,通过C#的特性对token进行验证,并通过时间戳的方式统一处理接收与返回的时间格式. 请求Json格式: { "Cmd": "login", "Token": "", "PageNo": 0, "OnePageNu

Spring接收和响应json数据

一.前言 关于什么是json以及基本使用技巧,为什么使用json等等,这里不再重复,直接进入主题 注:服务端接收json数据还原为java对象,称为反序列化,反之,将java对象作为响应转换为json数据发回给客户端,称为序列化 二.导入json相关框架的依赖(比如jackson) 如果使用的是spring boot框架,导入spring boot相关依赖后,就存在相关依赖,无需重复,否则会报错:   如果使用的是spring MVC框架,就需要手动导入相关依赖(比如Jackson),直接上代码

快速将对象转化为JSON格式

1.导入阿里巴巴fastjson包. <!-- fastJson将对象转化为Json对象 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.24</version> </dependency> 2.写一个公共的Action类,调用jar包中的toJSONStri