1、传回JSON对象
实体类
private String username;
private String password;
private List<String> daylist = new ArrayList<String>();
控制层中通过属性consumes = "application/json"限制前台传递过来的数据格式必须是JSON,属性produces = "application/json"设置返回的userinfo中的数据要转换成JSON对象并传回给客户端,@ResponseBody注解指将JSON字符串作为响应处理
package com.controller;
import java.util.ArrayList;
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 org.springframework.web.bind.annotation.ResponseBody;
import com.entity.Userinfo;
@Controller
public class CreateJSON {
@RequestMapping(value = "createJSONURL", method = RequestMethod.POST,
consumes = "application/json",produces = "application/json")
@ResponseBody
public Userinfo createJSON(@RequestBody Userinfo userinfoparam){
System.out.println(userinfoparam.getUsername()+" "+userinfoparam.getPassword());
Userinfo userinfo = new Userinfo();
userinfo.setUsername("张大");
userinfo.setPassword("123");
userinfo.setDaylist(new ArrayList<String>());
userinfo.getDaylist().add("星期一");
userinfo.getDaylist().add("星期二");
userinfo.getDaylist().add("星期三");
return userinfo;
}
}
jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'getJSON.jsp' starting page</title>
<script src="jquery-1.3.2.js"></script>
<script src="json2.js"></script>
<script type="text/javascript">
function userinfo(username,password){
this.username = username;
this.password = password;
}
function sendAjax(){
var usernameRef = new userinfo("李四","123");
var jsonString = JSON.stringify(usernameRef);
$.ajax({
type:"POST",
data:jsonString,
url:"createJSONURL.spring?t="+new Date().getTime(),
contentType:"application/json",
dataType:"json",
success:function(data,type){
alert(data.username+" "+data.password);
var dayArray = data.daylist;
for(var i=0;i<dayArray.length;i++){
alert(dayArray[i])
}
}
});
}
</script>
</head>
<body>
<input type="button" onclick="sendAjax()" value="send"/>
</body>
</html>
在springMVC-servlet.xml添加注解使JSON字符串自动转换成实体类
<mvc:annotation-driven />
2、传回json字符串
需要新增jar如下
实体类
private String username;
private String password;
private List<String> daylist = new ArrayList<String>();
控制层
package com.controller;
import java.util.ArrayList;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.entity.Userinfo;
@Controller
public class CreateJSON {
@RequestMapping(value = "returnJSONString")
@ResponseBody
public String ReturnJSONString(){
Userinfo userinfo = new Userinfo();
userinfo.setUsername("王五");
userinfo.setPassword("123");
userinfo.setDaylist(new ArrayList<String>());
userinfo.getDaylist().add("星期一");
userinfo.getDaylist().add("星期二");
userinfo.getDaylist().add("星期三");
return JSONObject.fromObject(userinfo).toString();
}
}
jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'sendAjax.jsp' starting page</title>
<script src="jquery-1.3.2.js"></script>
<script src="json2.js"></script>
<script type="text/javascript">
function sendAjax(){
$.ajax({
type:"POST",
url:"returnJSONString.spring?t="+new Date().getTime(),
success:function(data,textStatus){
var jsonObject = JSON.parse(data);
alert("returnJSONString="+data+" value="+jsonObject.username+" "+jsonObject.password
+jsonObject.password+" "+jsonObject.daylist[0]+" "+jsonObject.daylist[2]+" "+jsonObject.daylist[3])
}
});
}
</script>
</head>
<body>
<input type="button" onclick="sendAjax()" value="send">
</body>
</html>
需要在springMVC-servlet.xml中添加utf-8处理配置否则会出现乱码
<context:component-scan base-package="com.controller" />
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="stringHttpMessageConverter" />
</list>
</property>
</bean>
<bean id="stringHttpMessageConverter"
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=utf-8</value>
</list>
</property>
</bean>
<mvc:annotation-driven />
运行效果