springMVC——在服务器端获取JSON字符串并解析的两种方式

实现将在服务器获取客户端传来的JSON字符串,并把JSON字符串转成JSON对象并取得其中属性值

方式1:解析JSON字符串使用json.jar来实现,需要新增jar如下

springMVC——在服务器端获取JSON字符串并解析的两种方式_第1张图片springMVC——在服务器端获取JSON字符串并解析的两种方式_第2张图片

首先在web中配置spring 编码过滤器,防止乱码

    
		encodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			utf-8
		
	
	
		encodingFilter
		/*
	

sendAjax.jsp中利用JSON.stringify()把一个JS对象实例[object:object]转化为json格式的字符串。发送一个getJSONString.spring请求,后面加时间是为了保证浏览器每次都把它当做一个不同的请求,不调用浏览器缓存。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


   
    My JSP 'sendAjax.jsp' starting page

	
	
	
	
  
  
  
    
  

控制层将JSON字符串转换成对象,取得其中的值

package controller;

import net.sf.json.JSONObject;

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

@Controller
public class GetJSONString {

	@RequestMapping(value = "getJSONString")
	public String getJSONString(@RequestParam("jsonString") String jsonString) {

		JSONObject object = JSONObject.fromObject(jsonString);
		System.out.println(object.get("username"));
		System.out.println(object.get("password"));
		return "test.jsp";
	}
}

方式2:解析字符串使用springMVC4提供的一种从JSON字符串自动转换成实体的技术,只需要新增jjackson-all-1.9.8.jar

springMVC——在服务器端获取JSON字符串并解析的两种方式_第3张图片

新建实体类生成get和set方法

private String username;
private String password;

控制层方法中使用@RequestBody注解,在前台只需要向控制层提交一段JSON格式requestbody体,spring4MVC就会自动将其拼装成javaBean。createJSON()方法需要调用一个无参的构造函数来实例化一个Userinto实体,进而调用name和password属性对应的方法

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import entity.Userinfo;

@Controller
public class GetJSONStringToObject {
	@RequestMapping(value = "createJSONObjectURL", method = RequestMethod.POST)
	public String createJSON(@RequestBody Userinfo userinfo) {
		System.out.println("username value=" + userinfo.getUsername());
		System.out.println("password value=" + userinfo.getPassword());
		return "test.jsp";
	}
}

在springMVC-servlet中添加注解使JSON字符串自动转换成实体类



	
	

sendAjax.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
 

    
        
        
        
    
    
        
    

 

你可能感兴趣的:(spring,Ajax)