SpringMVC 接收页面Post提交的json字符串并解析

该博客介绍了如何在SpringMVC中处理由前端页面POST提交的JSON字符串。页面使用jQuery的AJAX方法发送JSON数据,后台控制器通过@RequestBody注解接收并利用阿里巴巴的Fastjson库进行解析。示例代码展示了如何从JSON字符串转换为Map列表和JSONArray。

json 使用的是ali的fastjson;

页面提交的是json字符串,后台使用@RequestBody String param接收数据,通过json解析param;

页面:

[html] view plain copy

  1. <%@ page language="java" contentType="text/html; charset=utf-8"  
  2.     pageEncoding="utf-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  7. <title>Insert title here</title>  
  8. <script type="text/javascript" src="jquery.min.js"></script>  
  9. <script type="text/javascript">  
  10.     function testSpringParam(){   
  11.         var name=$("#name").val();  
  12.         var email=$("#email").val();      
  13.           
  14.         $.ajax({  
  15.             type: 'POST',  
  16.             url: 'paramurl/paramTest.do' ,           
  17.             dataType: 'text',  
  18.             contentType:'application/json;charset=UTF-8',  
  19.             data:JSON.stringify([{'name':name,'email':email}]),  //提交json字符串数组,如果提交json字符串去掉[]   
  20.             success:function(data){  
  21.                 alert(data);  
  22.             },  
  23.             error:function(textStatus, errorThrown){  
  24.                 console.log(textStatus);  
  25.                 alert(textStatus);  
  26.             }  
  27.         });  
  28.     }  
  29. </script>  
  30. </head>  
  31. <body>  
  32. <form action="" id="f1" name="f1">  
  33.     <input name="name" id="name"  type="text"  value="zhangsan1"><br>  
  34.     <input name="email" id="email" type="text" value="zhangsan@163.com"><br><br>  
  35.     <a href="#" onclick="testSpringParam();">测试</a>  
  36. </form>  
  37. </body>  
  38. </html>  

后台代码:

[java]  view plain  copy
  1. package com.pb.web.controller;  
  2.   
  3. import java.util.List;  
  4. import java.util.Map;  
  5.   
  6. import org.springframework.stereotype.Controller;  
  7. import org.springframework.web.bind.annotation.RequestBody;  
  8. import org.springframework.web.bind.annotation.RequestMapping;  
  9. import org.springframework.web.bind.annotation.RequestMethod;  
  10. import org.springframework.web.bind.annotation.ResponseBody;  
  11.   
  12. import com.alibaba.fastjson.JSONArray;  
  13. import com.alibaba.fastjson.JSONObject;  
  14.   
  15. @Controller  
  16. @RequestMapping("/paramurl")  
  17. public class ParamController {  
  18.       
  19.     @RequestMapping(value="/paramTest.do",method=RequestMethod.POST)  
  20.     @ResponseBody  
  21.     public String paramTest(@RequestBody String param){       
  22.         System.out.println(param);  
  23.         JSONObject jo=new JSONObject();  
  24.           
  25.         //如果页面传的是json字符串,用下列方式解析  
  26. //      Map<String, Object> m=(Map<String, Object> )jo.parse(param); //string转map  
  27. //      System.out.println(m);//          
  28. //      JSONObject parseObject = jo.parseObject(param); //string转json  
  29. //      System.out.println(parseObject);  
  30.           
  31.         //如果页面传的是json数组字符串,用下列方式解析  
  32.         List<Map> parseArray = jo.parseArray(param, Map.class);  
  33.         System.out.println(parseArray); //string转list  
  34.           
  35.         JSONArray parseArray2 = jo.parseArray(param);  
  36.         System.out.println(parseArray2);  
  37.         return "ok";  
  38.     }  
  39. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值