日期:2014-05-16 浏览次数:20428 次
什么是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("网络连接出错!"); } }); }