天天看点

SpringMVC @RequestBody接收Json对象字符串 例子

pringmvc 的这个 @RequestBody 用得比较少,今天看了一下,还是很方便.

 @RequestBody 接收类似 [{name: "test"}, {name: "张三"}] 这样的json字符串.

先看页面:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script type="text/javascript">  
     function test(){
            var saveDataAry=[];  
            var data1={"name":"test"};  
            var data2={"name":"张三"};  
            saveDataAry.push(data1);  
            saveDataAry.push(data2);         
            $.ajax({ 
                type:"POST", 
                url:"http://localhost/test/student", 
                dataType:"json",      
                contentType:"application/json",               
                data:JSON.stringify(saveDataAry), 
                success:function(data){ 
                   alert(data)                   
                } 
             }); 
      }
</script>
</head>
<body>
    <input type="button" οnclick="test()" value="测试">
</body>
</html>      

最后看后台代码:

import java.util.List;

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class TestController {

    @ResponseBody
    @RequestMapping(value="/student",method=RequestMethod.POST)
    public String student(@RequestBody List<Student> students ){
        for(Student s : students){
            System.out.println("学生姓名:"+s.getName());
        }
        return "ok";
    }
}

class Student{
    
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    
    
}      

小结一下,这样传参数就是json字符串化.