什么是json?
一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。
后台java代码处理json所需jar包
jakarta commons-lang 2.4
jakarta commons-beanutils 1.7.0
jakarta commons-collections 3.2
jakarta commons-logging 1.1.1
ezmorph 1.0.6
json-lib-2.4-jdk15.jar
Json的规则
JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
示例:
function testJson1(){
var user =
{
"name":"dakui",
"age":23,
"info":{"tel":"langfang","cellphone":"15175666666"},
"address":
[
{"city":"langfang","postcode":"065000"},
{"city":"hengshui","postcode":"053000"},
]
}
alert(user.name);
alert(user.address[0].city);
alert(user.address[1].postcode);
}
Json传递实体:
后台:
response.setContentType("text/html");
PrintWriter out = response.getWriter();
User u1=new User();
u1.setName("zsk1");
u1.setAge(23);
//json返回实体
JSONObject jsonObject=JSONObject.fromObject(u1);//转化Map对象
out.print(jsonObject);//返给ajax请求
前台:
function testJson(){
$.ajax({
type : "POST",
url : "/testMVC/test/json",
dataType : "json", //返回值类型
success:function(json){
alert(json.name);
},
error : function() {
alert("网络连接出错!");
}
});
}
JSONArray传递List对象:
和传递实体大同小异
只需在后台转换为JSONObject中把原来的实体对象换位List对象即可
PrintWriter out = response.getWriter();
List<User> list = new ArrayList<User>();//传递List
Map<String, User> m=new HashMap<String, User>();//传递Map
User u1=new User();
u1.setName("zsk1");
u1.setAge(23);
User u2=new User();
u2.setName("zsk2");
u2.setAge(56);
list.add(u1); //添加User对象
list.add(u2); //添加User对象
前台:
function testJson(){
$.ajax({
type : "POST",
url : "/testMVC/test/json",
dataType : "json", //返回值类型
success:function(json){
alert(json[0].name+" " json[0].age;
},
error : function() {
alert("网络连接出错!");
}
});
}
JSONObject传递Map对象:
后台代码:
response.setContentType("text/html");
PrintWriter out =response.getWriter();
Map<String, User> m=new HashMap<String, User>();//传递Map
User u1=new User();
u1.setName("zsk1");
u1.setAge(23);
User u2=new User();
u2.setName("zsk2");
u2.setAge(56);
m.put("u1", u1);
m.put("u2", u2);
前台代码:
function testJson2(){
$.ajax({
type: "POST",
url:"/testMVC/test/json",
dateType:"json",
success:function(json){
alert(json.u1.username);
},
error:function(){
alert("网络连接出错!");
}
});
}