日期:2014-05-16  浏览次数:20398 次

json简介+实例

什么是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("网络连接出错!");
  }
 });
 }