SpringMVC @RequestBody接收Json对象字符串

转:http://www.cnblogs.com/quanyongan/archive/2013/04/16/3024741.html

以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: "json", contentType:"application/json" 这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody即可绑定对象或者List.

JavaScript 代码:

<script type="text/javascript">
        var paramObj = {"userName": "xxx", "address": "yyy"};  

        $.ajax({
            type: "POST",
            url: "user/saveUser",
            dataType: "json",
            contentType: "application/json",
            data: JSON.stringify(paramObj),
            success: function(data){
                alert("request success");
            }
         }); 

</script>

Java代码

@RequestMapping(value = "saveUser", method = {RequestMethod.POST }})
@ResponseBody
public void saveUser(@RequestBody param) {
    userService.batchSave(param);
} 
时间: 2024-12-27 16:02:02

SpringMVC @RequestBody接收Json对象字符串的相关文章

SpringMVC @RequestBody接收Json对象字符串 demo

springmvc 的这个 @RequestBody 用得比较少,今天看了一下,还是很方便. @RequestBody 接收类似 [{name: "test"}, {name: "张三"}] 这样的json字符串. 先看页面: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here<

SpringMVC @RequestBody接收JSON报HTTP 415问题的解决方法

现在做的一个项目是做app服务端的,需要从app接收json的请求数据,服务端框架用的是SpringMVC,所以自然而然的想到直接用@RequestBody来接收json数据, 格式如下: public ResponseProtocolMap login(@RequestBody JSONObject requestJson,HttpServletRequest request) { ResponseProtocolMap responseProtocolMap = null; //中间内容省略

SpringMVC @RequestBody 接收Json数组对象

<script type="text/javascript"> $(document).ready(function(){ $.ajax({ type:'POST', url:'<%=path%>/user/ceshi.do', dataType:"json", contentType:"application/json", data:JSON.stringify([{id:"1",name:"

【Spring学习笔记-MVC-6】SpringMVC 之@RequestBody 接收Json数组对象

作者:ssslinppp       1. 摘要 程序流程: 前台使用ajax技术,传递json字符串到后台: 后台使用Spring MVC注解@RequestBody 接受前台传递的json字符串,并返回新的json字符串到前台: 前台接受后台传递过来的json数据,并显示. 2. 前台界面和js <%@ page language="java" pageEncoding="UTF-8"%> <% String path = request.ge

json对象字符串互转

json对象字符串互转 1.Node.js中 JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json字符串 2.Jquery中 $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 3.javaScript eval('(' + jsonstr + ')'); //可以将json字符串转换成

springmvc接口接收json类型参数设置

Springmvc需要如下配置: 1.开启注解 <!-- 开启注解--> <mvc:annotation-driven /> 2.加入相关bean <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list

@RequestBody接收ajax的json字符串

在使用ajax进行请求,并传递参数时,偶尔需要把数组作为传递参数,这是就要使用@RequestBody来解决这个问题 在页面端的处理: (1)利用JSON.stringify(arr)需要把json对象数组转变成一个json对象字符串 (2)在ajax的参数中设置"contentType": "application/json" $(function(){ $("#exe").on("click",function(){ va

springmvc json字符串转化成json对象

问题出现在 :页面数据列表的展示出现 [object HTMLInputElement] 找到问题的所在原因后又三种解决方案 一:格式化json字符串为json对象字符串 success:function(data){ data=eval('('+data+')'); //在返回的数据里加上这就代码, alert(data);} 二:指定数据类型为json $.ajax({ type:'post', data:{pageSize:15,currentPage:1}, url:'<%=ctxPat

JSON对象和JSON字符串

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JSON.parse()</titl