`

@RequestBody接收Json对象字符串

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

<script type="text/javascript">  
    $(document).ready(function(){  
        var saveDataAry=[];  
        var data1={"userName":"test","address":"gz"};  
        var data2={"userName":"ququ","address":"gr"};  
        saveDataAry.push(data1);  
        saveDataAry.push(data2);         
        $.ajax({ 
            type:"POST", 
            url:"user/saveUser", 
            dataType:"json",      
            contentType:"application/json",               
            data:JSON.stringify(saveData), 
            success:function(data){ 
                                       
            } 
         }); 
    });  
</script> 


注意:data:JSON.stringify(saveData)如果改为data:{value : JSON.stringify(saveData)}

则spring后台方法接收到的参数值为如下形式:value=%7B%22value%22%3A%2223%22%2C%22address%22%3A%22%E5%8C%97%E4%BA%AC%22%7D

 @RequestMapping(value = "saveUser", method = {RequestMethod.POST }}) 
    @ResponseBody  
    public void saveUser(@RequestBody List<User> users) { 
         userService.batchSave(users); 
    } 


参考:http://www.cnblogs.com/quanyongan/archive/2013/04/16/3024741.html
分享到:
评论

相关推荐

    详解SpringMVC @RequestBody接收Json对象字符串

    值得注意的是,使用@RequestBody接收JSON数据时,前端发送的JSON字符串格式必须正确。键值对中的键(key)必须用双引号包围,否则后端可能会解析失败,并返回400 Bad Request错误。错误的格式或者类型不匹配也会导致...

    spring 支持@RequestBody注解依赖包

    如果请求体是JSON格式,那么Jackson的JsonHttpMessageConverter就会被用来将JSON字符串解析成Java对象。 Jackson是Spring MVC中用于处理JSON序列化和反序列化的库。它提供了丰富的API和注解,使得我们能够方便地将...

    Spring源码学习十一:SpringMVC-@RequestBody接收json数据报4151

    即使请求头设置正确,如果没有在项目的构建配置文件(如pom.xml或build.gradle)中添加处理JSON字符串所需的库,Spring MVC也无法进行JSON转换。Spring MVC默认支持Jackson和Gson库来处理JSON数据。如果在项目中没有...

    快速解决SpringMVC @RequestBody 用map接收请求参数的问题

    在使用 @RequestBody 注解时,我们需要注意的是,它接收的是一个 Json 对象的字符串,而不是一个 Json 对象。例如: ```java @RequestMapping(value = "saveUser", method = {RequestMethod.POST}) @ResponseBody ...

    详解使用@RequestBody取POST方式的json字符串

    本文将深入探讨如何使用`@RequestBody`来接收POST方式的JSON字符串。 首先,`@RequestBody`是Spring MVC中的一个注解,它的作用是从HTTP请求的主体中获取数据,并尝试将其转换为指定类型的对象。在处理JSON数据时,...

    Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable

    例如,如果你的控制器方法返回一个Java对象,添加`@ResponseBody`后,Spring会使用内置的HttpMessageConverter将对象转换为JSON字符串,使得前端可以解析。这对于RESTful API的开发尤其重要,因为它允许我们以数据...

    SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)

    - Spring MVC默认提供了多种Converter,例如:StringHttpMessageConverter(处理字符串)、MappingJackson2HttpMessageConverter(处理JSON数据)、Jaxb2RootElementHttpMessageConverter(处理XML数据)等。...

    SpringMVC restful 注解之@RequestBody进行json与object转换

    当控制器方法接收POST、PUT等带有请求体的HTTP请求时,`@RequestBody`可以帮助我们将接收到的JSON字符串自动映射到Java对象上,从而简化了数据处理的流程。 在上述描述的场景中,开发者首先克隆了一个Spring官方的...

    springboot后台接收axios传递的json数据为null

    在前端传入的是json字符串,后台按字符串string参数接收再解析。 请求头contentType设置为application/x-www-form-urlencoded;charset=utf-8。 后台接收请求的方法的参数可以用String类型 @RequestBody 是作用在形参...

    如何解决@RequestParam无法接收vue+axios传递json数据(csdn)————程序.pdf

    在某些情况下,前端发送的数据是复杂对象而非简单字符串,此时可以创建一个对应的Java实体类,如User类,并使用@RequestBody修饰: ```java @PostMapping(value="/login", consumes = "application/json;charset=UTF...

    springMvc注解之@ResponseBody和@RequestBody详解

    例如,在控制器中,我们可以使用ObjectMapper对象来将Java对象序列化为JSON字符串。 ```java ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(object); ``` 同样,我们也可以...

    详解Springboot之接收json字符串的两种方式

    本文将详细介绍两种在Spring Boot中接收JSON字符串的方法。 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人和机器都能容易地读取和编写数据。在Spring Boot中,我们...

    springMvc注解之 ResponseBody和 RequestBody.docx

    在使用`@RequestBody`接收多层嵌套的JSON对象时,注意前端需要设置`contentType`为`"application/json"`,并且使用`JSON.stringify()`将数据转换为字符串。这是因为HTTP请求默认可能不包含正确的Content-Type头,...

    android demo,json数据的处理,json字符串的发送和解析。

    1. 使用Gson库:Google提供的Gson库可以方便地将JSON字符串转换为Java对象,或者将Java对象转换为JSON字符串。首先定义对应的Java类,然后使用Gson的`fromJson()`方法解析JSON。 2. 使用org.json库:前面提到的`...

    Spring mvc 接收json对象

    当Controller方法的参数前有此注解时,Spring会尝试将请求体中的JSON字符串解析为对应的Java Bean。在给定的代码示例中,`User`类的实例就是通过`@RequestBody User user`接收的。`User`类通常包含与JSON对象匹配的...

    springmvc实现json交互-requestBody和responseBody

    `@RequestBody`注解用于读取HTTP请求的内容,通常是请求体中的JSON字符串。Spring MVC通过HttpMessageConverter接口将这个字符串转换为Java对象,然后将其绑定到控制器方法的参数上。这使得我们可以方便地将JSON数据...

    springMVC的 RequestBody和 ResponseBody和RequestParam.docx

    3. **JSON 字符串与对象区别**:需要注意的是,`@RequestBody` 接收的是前端传过来的 JSON 字符串,而不是直接的对象实例。这意味着如果你想要使用一个 Java 对象来表示接收到的数据,你需要手动将 JSON 字符串转换...

    详解springmvc 接收json对象的两种方式

    当前端发送JSON数据时,通常会将一个JavaScript对象转换成JSON字符串。在后端,我们可以创建一个对应的Java实体类来接收这些数据。首先,假设我们有一个名为`Obj`的实体类,它包含`objname`和`pid`属性。在前端,...

    Android list转json工具类

    当需要将Android应用中的数据列表发送到服务器或者从服务器获取数据时,通常需要将List对象转换为JSON字符串。本篇文章将深入探讨如何在Android中实现一个将集合List转化为JSON字符串的工具类,以及在联网调接口时...

Global site tag (gtag.js) - Google Analytics