Spring mvc 接收json对象


Posted in Javascript onDecember 10, 2015

本文通过代码实例介绍spring mvc 接收json数据的方法,具体详情如下所示:

接收JSON

使用 @RequestBody 注解前台只需要向 Controller 提交一段符合格式的 JSON,Spring 会自动将其拼装成 bean。

1)在上面的项目中使用第一种方式处理返回JSON的基础上,增加如下方法:

Java代码

@RequestMapping(value="/add",method=RequestMethod.POST, headers = {"content-type=application/json","content-type=application/xml"}) 
  @ResponseBody 
  public Object addUser(@RequestBody User user) 
  { 
    System.out.println(user.getName() + " " + user.getAge()); 
    return new HashMap<String, String>().put("success", "true"); 
  }

这里的POJO如下:

Java代码

public class User { 
    private String name; 
    private String age; 
    //getter setter 
  }

2)而在前台,我们可以用 jQuery 来处理 JSON。从这里,我得到了一个 jQuery 的插件,可以将一个表单的数据返回成JSON对象:

Js代码

$.fn.serializeObject = function(){ 
    var o = {}; 
    var a = this.serializeArray(); 
    $.each(a, function(){ 
      if (o[this.name]) { 
        if (!o[this.name].push) { 
          o[this.name] = [o[this.name]]; 
        } 
        o[this.name].push(this.value || ''); 
      } 
      else { 
        o[this.name] = this.value || ''; 
      } 
    }); 
    return o; 
  };

   以下是使用 jQuery 接收、发送 JSON 的代码:

Js代码

$(document).ready(function(){ 
    jQuery.ajax({ 
      type: 'GET', 
      contentType: 'application/json', 
      url: 'jsonfeed.do', 
      dataType: 'json', 
      success: function(data){ 
        if (data && data.status == "0") { 
          $.each(data.data, function(i, item){ 
            $('#info').append("姓名:" + item.name +",年龄:" +item.age); 
          }); 
        } 
      }, 
      error: function(){ 
        alert("error") 
      } 
    }); 
    $("#submit").click(function(){ 
      var jsonuserinfo = $.toJSON($('#form').serializeObject()); 
      jQuery.ajax({ 
        type: 'POST', 
        contentType: 'application/json', 
        url: 'add.do', 
        data: jsonuserinfo, 
        dataType: 'json', 
        success: function(data){ 
          alert("新增成功!"); 
        }, 
        error: function(){ 
          alert("error") 
        } 
      }); 
    }); 
  });

但是似乎用Spring这套东西真是个麻烦的事情,相对Jersey对RESTful的实现来看,确实有很多不简洁的地方。

以上所述是本文给大家分享的Spring mvc 接收json数据的相关资料,希望大家喜欢。

Javascript 相关文章推荐
JavaScript 代码压缩工具小结
Feb 27 Javascript
JavaScript自动设置IFrame高度的小例子
Jun 08 Javascript
jQuery照片伸缩效果不影响其他元素的布局
May 09 Javascript
javascript检测是否联网的实现代码
Sep 28 Javascript
javascript实现继承的简单实例
Jul 26 Javascript
JS数组合并push与concat区别分析
Dec 17 Javascript
js获取本机操作系统类型的两种方法
Dec 19 Javascript
vue.js中$watch的用法示例
Oct 04 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
May 17 Javascript
Three.js中网格对象MESH的属性与方法详解
Sep 27 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
用vue-cli开发vue时的代理设置方法
Sep 20 Javascript
SpringMVC返回json数据的三种方式
Dec 10 #Javascript
js操作数组函数实例小结
Dec 10 #Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
Dec 10 #Javascript
jQuery自定义动画函数实例详解(附demo源码)
Dec 10 #Javascript
javascript图片预加载完整实例
Dec 10 #Javascript
JavaScript动态插入CSS的方法
Dec 10 #Javascript
jQuery实现监控页面所有ajax请求的方法
Dec 10 #Javascript
You might like
php面向对象编程self和static的区别
2016/05/08 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
Python实现的单向循环链表功能示例
2017/11/10 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
Python 实现数组相减示例
2019/12/27 Python
python字典按照value排序方法
2020/12/28 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
驾驶员岗位职责
2014/01/29 职场文书
2015年超市工作总结
2015/04/09 职场文书
小学见习报告
2015/06/23 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS
JS的深浅复制详细
2021/10/16 Javascript