Spring 4MVC框架下在后台解析JSON数据

简述

json格式的数据应用越来越广泛,结合ajax技术,经常作为前后台数据交互的一种格式。前台会将json格式的数据发送给后台,后台也会将json格式的数据返回给前台。后台处理json格式的数据使用的是java等语言,而前台处理json数据使用的是js脚本语言。下面的小案例是在Spring 4mvc框架下,后台处理前台发送的json格式的数据。


方法一

  • 首先在web.xml中配置编码过滤器,可以使用Spring自带的字符编码过滤器,也可以自定义。
  • 新建jsp文件,这这个jsp文件中向后台发送json格式的数据

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<script type="text/javascript" src="jquery.js" ></script>
       <script type="text/javascript" src="json2.js" ></script>
	
</head>
<body>
	<script>
		function userinfo(username,password) {
			this.username = username;
			this.password = password;
		}
		
		function sendAjax(){
			var userinforef = new userinfo('张三','1234');
			var jsonStringRef = JSON.stringfy(userinforef);
			
			$.post("getJSONString.spring?t="+new Date().getTime(),{
				jsonString:jsonStringRef
			});
		}
		
	</script>
	<input type="button" onclick="sendAjax()" value="提交" />
</body>

这里要引入json2.js可以将javascript对象转换为json格式的字符串
  • 编写后台,这里需要引入jsonlib.jar包,使用包中的类进行处理

package b;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import net.sf.json.JSONObject;

/**
 * 获取JSON字符串
 * @author acer
 *
 */
public class GetJSONString {

	@RequestMapping("getJSONString.spring")
	public String getJSONString(@RequestParam("jsonString") String jsonString){
		//将jsonString转换为JSONObject
		JSONObject object = JSONObject.fromObject(jsonString);
		
		System.out.println(object.get("username"));
		System.out.println(object.get("password"));
		
		return "login.jsp";
	}
}

方法二

Spring 4MVC中提供了一种从JSON字符串自动转换成实体的技术。首先也是最为·重要的就是添加jar包【jackson-all-1.9.8.jar】

  • 建立实体【javabean】

public class UserInfo {

	private String username;
	private String password;
	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

  • 新建控制层

@Controller
public class GetJSONStringToObject {

	@RequestMapping(value="createJSONObjectURL",method=RequestMethod.POST)
	public String createJSON(@RequestBody UserInfo userinfo){
		System.out.println(userinfo.getUsername());
		System.out.println(userinfo.getPassword());
		return "login.jsp";
	}
}
使用@RequestBody注解,前台需要向Controller提交一段符合JSON格式的数据,Spring 4MVC会自动将其拼装成javabean。javabean中如果有有参数的构造函数,那必须定义一个无参构造函数,因为该方法需要调用的是一个无参数的构造方法,然后使用set方法向对象中添加值。
  • 修改SpringMVC-servlet.xml配置文件

添加被标注的内容,beans中添加的那三项很重要,否则会报错。通过<mvc:annotation-driven />注解可以使JSON字符串自动转换为实体类,在Spring 4MVC中,DefaultAnnotationHandlerMapping对象负责处理类级别的@RequestMapping注解,而AnnotationMethodHandlerAdapter负责处理方法级别的@RequestMapping注解,如果使用了<mvc:annotation-driven />注解,就会自动注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter俩个bean。


这样就完成后服务器端解析json字符串的功能的实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值