springMVC接收post请求传输json字符串、json字符串数组

最近做的一个小项目中,前端ajax调用后台API,post请求传递用json封装好的数据对象、数据对象数组,发现springMVC的@RequestBody注解可以解决这个问题,代码如下:

前端:

    pageEncoding="utf-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
<title>Insert title here</title>  
<script
type="text/javascript"
src="http://code.jquery.com/jquery-1.4.1.js"></script>   
<script type="text/javascript">  
    function testSpringParam(){   
        var receive_address=$("#receive_address").val();  
        var user_id=$("#user_id").val();      
          
        $.ajax({  
            type: 'POST',  
            url: 'http://localhost:8080/address/add',           
            dataType: 'text',  
            contentType:'application/json;charset=UTF-8',  
            data:JSON.stringify({'receive_address':receive_address,'user_user_id':user_id}),  //提交json字符串数组,如果提交json字符串去掉[]   
            success:function(data){  
                alert(data);  
            },  
            error:function(textStatus, errorThrown){  
                console.log(textStatus);  
                alert(textStatus);  
            }  
        });  
    }  
</script>  
</head>  
<body>  
<form action="" id="f1" name="f1">  
    <input name="receive_address" id="receive_address"  type="text"  value="福中集团"><br>  
    <input name="user_id" id="user_id" type="text" value="2"><br><br>  
    <a href="#" onclick="testSpringParam();">测试</a>  
</form>  
</body>  
</html> 

后端:

        @RequestMapping(value = "/address/add", method = RequestMethod.POST)
@ResponseBody

public JSONObject addAdde(@RequestBody String param) {


// 创建一个JSONObject对象,返回数据ResponseBody用
JSONObject jsonObject = new JSONObject();


// 将RequestBody中的json数据转化为数组(长度为1,如果长度大于1,请用for循环遍历)
// JSONArray array = JSONArray.parseArray(param);
//
// // 根据key获取对应的值
// String receive_address = ((JSONObject) array.get(0))
// .getString("receive_address");
//
// String user_user_id = ((JSONObject) array.get(0))
// .getString("user_user_id");


// 将RequestBody中的json字符串转化为json对象
JSONObject jo = JSONObject.parseObject(param);


// 根据key获取json对象中对应的值
String receive_address = jo
.getString("receive_address");


String user_user_id = jo.getString("user_user_id");


// 新建一个Address对象
Address addr = new Address();
addr.setReceive_address(receive_address);
addr.setUser_user_id(Integer.parseInt(user_user_id));


// 调用addressService的addAddr方法,新增一条收货地址记录
try {
addressService.addAddr(addr);
jsonObject.put("code", 0);
jsonObject.put("data", addr);
} catch (Exception e) {
jsonObject.put("code", 1);
jsonObject.put("data", null);
}


return jsonObject;

}


pom.xml添加依赖

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>

猜你喜欢

转载自blog.csdn.net/qq_30169767/article/details/80266646