1接受JSON格式数据:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试接收JSON格式的数据</title>
<%--<link rel="stylesheet" href="${pageContext.request.contextPath}/js/json2.js" />--%>
<script type="text/javascript" src="../js/json2.js"></script>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
testRequestBody();
});
function testRequestBody(){
$.ajax("${pageContext.request.contextPath}/json/testRequestBody",// 发送请求的URL字符串。
{
dataType : "json", // 预期服务器返回的数据类型。
type : "post", // 请求方式 POST或GET
contentType:"application/json", // 发送信息至服务器时的内容编码类型 ,表示发送的内容是json类型
// 发送到服务器的数据。
data:JSON.stringify({id : 1, name : "spring",author:"jkf"}),
async: true , // 默认设置下,所有请求均为异步请求。如果设置为false,则发送同步请求
// 请求成功后的回调函数。
success :function(data){
console.log(data);
$("#id").html(data.id);
$("#name").html(data.name);
$("#author").html(data.author);
},
// 请求出错时调用的函数
error:function(){
alert("数据发送失败");
}
});
}
</script>
</head>
<body>
编号:<span id="id"></span><br>
书名:<span id="name"></span><br>
作者:<span id="author"></span><br>
</body>
</html>
package controller;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.util.JSONPObject;
import model.Book;
import model.Car;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
@Controller
@RequestMapping("/json")
public class BookController {
@RequestMapping("/testRequestBody")
public void setJosn(@RequestBody Book book, HttpServletResponse response) throws Exception{
String s = JSONObject.toJSONString(book);//fastjson接受json数据
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println(JSONObject.toJSONString(book));
}
}
2.返回JSON格式的数据
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2017/12/18 0018
Time: 10:40
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>测试返回Json格式的数据</title>
<script type="text/javascript" src="/js/json2.js"></script>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
testResponseBody();
});
function testResponseBody(){
$.post("${packContext.request.contextPath}/json/testResponseBody",null,function(data){ //发送请求到具体的控制器,@ResponseBody返回一个json数据
$.each(data,function(){
var tr = $("<tr align='center'/>")
$("<td/>").html(this.id).appendTo(tr);
$("<td/>").html(this.name).appendTo(tr);
$("<td/>").html(this.author).appendTo(tr);
$("#booktable").append(tr);
})
},"json")
}
</script>
</head>
<body>
<table id="booktable" border="1" style="border-collapse: collapse">
<tr align="center">
<th>编号</th>
<th>书名</th>
<th>作者</th>
</tr>
</table>
</body>
</html>
package controller;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.util.JSONPObject;
import model.Book;
import model.Car;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
@Controller
@RequestMapping("/json")
public class BookController {
@RequestMapping("/testResponseBody")
public @ResponseBody Object getJson(){
List<Book> books = new ArrayList<Book>();
books.add(new Book("1","spring+mybatis企业应用实战","肖吉文"));
books.add(new Book("2","Java疯狂讲义","李刚"));
return books;
}
}
json需要的pom.xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.39</version>
</dependency>