先上前端javascript。ajax代码

<pre name="code" class="javascript">            function testAjaxS(){
$.ajax({
type:'post',
url:'material/testAjax',
data:'MediaId:手',
success:function(data){//返回json结果
alert("success");
}

相应的Spring mvc 接收代码

	@RequestMapping("/testAjax")
public @ResponseBody WXMedia testAjax(WXMedia wxMedia){ //值得注意的地方,參数中没有@RequestBody, 而且该POJP类必须有一个无參构造器
System.out.println(wxMedia);
return wxMedia;
}

另外一种:

		function testAjaxS(){
$.ajax({
type:'post',
url:'material/testAjax2',
//json字符串必须设置
contentType:'application/json;charset=utf-8',
//数据格式是json字符串
data:"{'MediaId':'手'}",
success:function(data){//返回json结果
alert("success");
} });

相应的spring mvc 接收代码

	@RequestMapping("/testAjax2")
public @ResponseBody WXMedia testAjax2(@RequestBody WXMedia wxMedia){ //这里有RequestBody
System.out.println(wxMedia);
return wxMedia; //返回的也会是一个json字符串,尽管方法返回值是POJO类
}

接收JSON数组:

前端代码:

function testAjaxS(){
$.ajax({
type:'post',
url:'material/testAjax3',
contentType:'application/json;charset=utf-8',
data:JSON.stringify([{"MediaId":"1"},{"MediaId":"2"}]), //2个对象
success:function(data){//返回json结果
alert("success");
} });

后台接收:

	@RequestMapping("/testAjax3")
public @ResponseBody WXMedia[] testAjax3(@RequestBody WXMedia[] wxMedia){
System.out.println(wxMedia.length);
return wxMedia;
}

总结:

@RequestBody: 接受json字符串。后面跟对应的POJO类型就可以,假设是数组则打上[],不加该注解则接收普通的參数请求

@ResponseBody:以JSON格式返回POJO对象

/* **************************2015年11月24日 11:59:13 **************************
*/

如果有这么一个对象:

            var obj = {
userId : userId,
xxxId : xxxId
}

在AJAX中用:

		function testAjaxS(){
$.ajax({
type:'post',
url:'material/testAjax2',
//json字符串必须设置
contentType:'application/json;charset=utf-8',
//数据格式是json字符串
//data:JSON.stringify(obj), // 这样会出错,发送的时候数据就会在后面多一个:,由此可得。我们仅仅用写对象即可! data: obj,
success:function(data){//返回json结果
alert("success");
} });

/* ************************** 2016年3月14日 12:06:03 **************************
*/

方法前加了

@ResponseBody 则方法參数中。不能直接使用对象 比如:
<pre style="background-color:#ffffff;color:#000000;font-family:'Consolas';font-size:12.0pt;">

@ResponseBody

public RespJSON<Map> listJson(Map map, Product product// 这个不行!。。 @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "6") Integer pageSize)


会报JSON反序列化错误

Springmvc JSON交互的更多相关文章

  1. 关于springmvc json交互产生的406错误

    产生错误的背景:springmvc使用<mvc:annotation-driven>进行配置,那么只要引入响应的json解析包就可以了.在pom中已经引入了如下: <dependen ...

  2. SpringMVC详解(六)------与json交互

    Json(JavaScript Object Notation),它是一种轻量级数据交换格式,格式简单,易于读写,目前使用特别广泛.那么这篇博客我们主要谈谈在 SpringMVC 中,如何对 json ...

  3. SpringMVC框架五:图片上传与JSON交互

    在正式图片上传之前,先处理一个细节问题: 每一次发布项目,Tomcat都会重新解压war包,之前上传过的图片会丢失 为了解决这个问题:可以不在Tomcat下保存图片,而是另找一个目录. 上传图片: & ...

  4. springMVC的高级数据绑定,以及json交互,全局异常配置,

    一.窄化请求映射 1.在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头,通过此方法对url进行分类管理. 如下: @Con ...

  5. springmvc实现json交互 -requestBody和responseBody

    json数据交互 1.为什么要进行json数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. 2. ...

  6. Ajax json交互和SpringMVC中@RequestBody

    Ajax json交互和SpringMVC中@RequestBody 标签: 背景 自己提供出去得接口中参数设置为@RequestBody VipPromotionLog vipPromotionLo ...

  7. SpringMVC之JSON交互

    #什么是json? json是一种用于储存数据格式,是js脚本语言的子集. #json的作用? 它可以传递对象.数组等数据结构.如果是单个数据,则要用数组,不用对象,因为对象都是键值对的 方式去存储, ...

  8. springMVC+json构建restful风格的服务

    首先.要知道什么是rest服务,什么是rest服务呢? REST(英文:Representational State Transfer,简称REST)描写叙述了一个架构样式的网络系统.比方 web 应 ...

  9. SpringMVC-05 Json交互处理

    SpringMVC-05 Json交互处理 Json 1.什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别 ...

随机推荐

  1. 小学生都能学会的python(编码 and 字符串)

    小学生都能学会的python(编码 and 字符串) 一,编码 最早的计算机编码是ASCII. 有英文+数字+特殊字符 8bit => 1byte 没有中文, 后面的编码必须兼容ASCII    ...

  2. 优化VR体验的7个建议

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接: http://blog.csdn.net/cartzhang/article/details/50392607 作者:ca ...

  3. Nuxt开发经验分享

    Nuxt开发经验分享 本文章基于starter-template模板进行讲解,面向有vue-cli开发经验的宝宝 vue init nuxt-community/starter-template   ...

  4. 原生javaScript完成Ajax请求

    使用原生javaScript完成Ajax请求,首先应该创建一个对象XMLHttprequest,考虑到兼容低版本IE浏览器,使用ActiveXObject对象,代码入下: var request; i ...

  5. (转载)maven profile多环境自动切换配置

    原文:https://www.cnblogs.com/adeng/p/7059588.html 痛点: 在java开发的过程中,我们经常要面对各种各样的环境,比如开发环境,测试环境,正式环境,而这些环 ...

  6. Css学习总结(2)——60个有用CSS代码片段

    1.垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,可以很优雅的解决这个困惑: .verticalcenter{ position: re ...

  7. Tarjan强联通分量【模板】

    #include <algorithm> #include <cstdio> using namespace std; ); int n,m,v,u; int edgesum, ...

  8. [Oracle] Merge语句

    Merge的语法例如以下: MERGE [hint] INTO [schema .] table [t_alias] USING [schema .] { table | view | subquer ...

  9. [Python]threading local 线程局部变量小測试

    概念 有个概念叫做线程局部变量.一般我们对多线程中的全局变量都会加锁处理,这样的变量是共享变量,每一个线程都能够读写变量,为了保持同步我们会做枷锁处理.可是有些变量初始化以后.我们仅仅想让他们在每一个 ...

  10. Java5新特性之枚举

    1.  概念 首先,枚举并非一种新技术,而是一种基础数据类型.它隶属于两种基础类型中的值类型,例如以下: 2.  为什么要有枚举 枚举在真正的开发中是非经常常使用的,它的作用非常easy也非常纯粹:它 ...