二、springmvc 接收不同格式的json字符串

1.首先扫盲几个知识点:

这个绑定json参数讲的都是用@RequestBody标签,所以前台必须传json字符串,不能是json对象,但是如果不用@RequestBody标签,前台是可以发送json对象的,而springmvc不能简单将复杂json对象在后台作为一个对象绑定(前台要用表单的形式构造json复杂对象,后台才能正常绑定,不用@RequestBody标签就是傻瓜式绑定,只要变量名一样,就绑定,包括对象里的和方法中单独的变量参数),例子如下:

前台发送:

 test = function () {

                 jQuery.ajax({
url : cur_url+"/weekly/test",
type : 'post',
data : {"jsonObjName":"123","id":456},
dataType : 'json',
success : function (data, textStatus) {
console.info(data);
console.info(data.length);
for ( var i = 0; i < data.length; i++) {
console.info(i + ":" + data[i].address);
console.info(i + ":" + data[i].userName);
}
alert("test success!");
},
error:function(){
alert("test error!");
}
});
};

后台接收:

     @RequestMapping("/test")
@ResponseBody
public List<User> test(String jsonObjName, Integer id) {
List<User> uList = new ArrayList<User>();
User u = new User();
u.setUserName(jsonObjName);
uList.add(u);
return uList; }

这里没有用到@RequestBody标签,ajax请求的时候不能指定contentType:"application/json",指定 dataType : 'json'的目的是后台返回json类型,这里spingmvc返回的是List<User>的json字符串。
这里发送的是json对象,后台接收json对象中的key对应的value,后台变量名必须和前台json对象中的key一致,由于spring绑定参数时是傻瓜式绑定,只要遇到变量名和前台json对象中key一样的就绑定,所以控制器参数中有一个对象,对象中有变量类型是String,变量名是jsonObjName 也会进行绑定,这里不做验证。

需要注意的是:不用@RequestBody标签,前台只能传递json对象,不能传递json字符串,这里json对象类似于表单提交绑定参数的方式,参考:http://www.cnblogs.com/cainiao-Shun666/p/6557624.html

例子见下一节。

springMVC绑定json参数之二(2.1)的更多相关文章

  1. springMVC绑定json参数之二(2.2.4)

    二.springmvc 接收不同格式的json字符串 4).格式四:json传递复杂对象(对象中有属性,还有List,这里验证数组接收,不用List,其他的和上一节不变) 测试一: Test对象属性如 ...

  2. springMVC绑定json参数之二(2.1.1)

    二.springmvc 接收不同格式的json字符串 1.首先扫盲几个知识点: 例子如下: 前台传递json对象(这里uu[0]的名字uu要和Test对象中的属性List<User>名称对 ...

  3. springMVC绑定json参数之二(2.2.3)

    二.springmvc 接收不同格式的json字符串 4).格式四:json传递复杂对象(对象中有属性,还有List) 复杂对象: package testVO; import java.util.L ...

  4. springMVC绑定json参数之二(2.2.2)

    二.springmvc 接收不同格式的json字符串 2).格式二:json字符串数组 前台: test = function () { var test = ["123",&qu ...

  5. springMVC绑定json参数之二(2.2.1)

    二.springmvc 接收不同格式的json字符串 2.扫盲完了继续测试springmvc 接收不同格式的json字符串 1).格式一:json简单数组对象 前台两种传递方式: 方式一(需要拼接js ...

  6. springMVC绑定json参数之一

    一.SpringMVC @RequestBody接收Json对象字符串 以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现, ...

  7. SpringMVC接受JSON参数详解及常见错误总结我改

    SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一个统一的接口给浏览器还有APP.所以把一个练手项目的前 ...

  8. SpringMVC接受JSON参数详解及常见错误总结

    SpringMVC接受JSON参数详解及常见错误总结 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一 ...

  9. SpringMVC接受JSON参数详解

    转:https://blog.csdn.net/LostSh/article/details/68923874 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session ...

随机推荐

  1. mysql 5.5 安装配置方法图文教程(转发)

    MySQL下载地址:http://dev.mysql.com/downloads/installer/ 1.首先进入的是安装引导界面 2.然后进入的是类型选择界面,这里有3个类型:Typical(典型 ...

  2. python基础7 ---python函数

    python基础知识 一.闭包函数 1.闭包函数的定义:在一个内部函数中,在对外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包. 2.闭包函数的特点:自带作用域和延迟计算 补 ...

  3. Shiro:学习笔记(2)——授权

    Shiro:学习笔记(2)——授权 Shiro的三种授权方式 编程式: Subject subject = SecurityUtils.getSubject(); if(subject.hasRole ...

  4. PullToRefresh下拉刷新

    https://github.com/chrisbanes/Android-PullToRefresh

  5. 图片加载ImageLoader

    https://github.com/nostra13/Android-Universal-Image-Loader public class AtguiguApplication extends A ...

  6. iOS swift 常量 && 宏定义

    全局常量 在C和Objective-C语言源文件中定义的全局常量会自动地被Swift编译引进并做为Swift的全局常量. 预处理指令 Swift编译器不包含预处理器.取而代之的是,它充分利用了编译时属 ...

  7. js完美实现table分页

    // JavaScript Document /** * js分页类 * @param iAbsolute 每页显示记录数 * @param sTableId 分页表格属性ID值,为String * ...

  8. ios中文模糊搜索兼容问题

    $(function(){ var cpLock = true; $("input[name='name']").off().on({ compositionstart: func ...

  9. 20145229《Java程序设计》第四次实验报告

    Android开发基础 实验要求 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android组件.布局管理器的使用: 3.掌握Android中事件处理机制. ...

  10. matlab之viscircles()函数

    函数功能:画圆 语法: viscircles(centers,radii) viscircles(ax,centers,radii) viscircles(___,Name,Value) h = vi ...