1、概述
JSON是JavaScript Object Notation 的缩写,是JS提供的一种数据交换格式。
JSON对象本质上就是一个JS对象,但是这个对象比较特殊,它可以直接转换为字符串,在不同语言中进行传递,通过工具又可以转换为其他语言中的对象。
2、
bean->Student类
package bean;
public class Student {
private String name;
public Student() {
super();
}
public Student(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student [name=" + name + "]";
}
}
servlet->JSONServlet.java
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import bean.Student;
/**
* 给前台响应数据的Sevlet
*/
public class JSONServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private Gson gson;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
//假设从数据库中查询出来了一个学生的信息
Student student = new Student("afei");
//创建gson对象
Gson gson = new Gson();
//将Student对象转换为字符串
String json = gson.toJson(student);
//给前台响应一个JSON字符串
//response.getWriter().write("{\"name\":\"afei\",\"age\":18}");
response.getWriter().write(json);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
index.html
/Web_JSON/WebContent/WEB-INF/lib/gson-2.2.4.jar
<!DOCTYPE html>
<html>
<head>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
//1、JSON对象
//属性名必须使用双引号括起来;属性名和属性值之间使用冒号分隔
//var jsonObj = {"name":"afei","age":18};
//alert(jsonObj.name);
//2、JSON数组
var jsonArray = ["afei",false,100,null,jsonObj];
//alert(jsonArray[4].age);
var jsonObj = {
"name":"afei",
"age":18,
"friends":[
{"name":"afei1"},
{"name":"afei2"},
{"name":"afei3"}
]
};
//alert(jsonObj.friends[2].name);
//将json对象转换为JSON字符串
var string = JSON.stringify(jsonObj)
//alert(string);
//将JSON字符串转换为json对象
var jsonObj1 = JSON.parse(string);
//alert(jsonObj1.name);
$(function(){
//给按钮绑定单击事件
$("#btnId").click(function(){
//设置请求地址
var url = "JSONServlet";
//发送Ajax请求
$.post(url,function(res){
alert(res.name+"无敌!!");
},"json")//设置数据类型,可以为text或者json,Jquery会自动转换
})
});
</script>
</head>
<body>
<button id="btnId">发送Ajax请求响应json数据</button>
</body>
</html>