小毅總結(jié)之JSON與AJAX

          Posted on 2008-12-26 19:12 H2O 閱讀(690) 評論(0)  編輯  收藏 所屬分類: ajax

          什么是JSON?
               一種輕量級的數(shù)據(jù)傳送格式,{}對象,[]數(shù)組,"屬性名":"屬性值",用逗號隔開。廢話少說,看代碼更直接,以下自己寫的例子。

          <script type="text/javascript">
              //純字符串+eval
              define = "
          {name:'Michael',email:'17bity@gmail.com'}";
             eval("data = "+define);
             alert("name:"+data.name);
             alert("email:"+data.email);
              //純對象
              var user =
          {
                  "name"
          :"yizhi",
                  "age":22,
                  "belive":"陽光總在風雨后"
              
          }
          ;
              alert(user.name);
              alert(user.age);
              alert(user.belive);
              //純數(shù)組
              var color =
              [
                  
          {"colorName":"red","symbol":"喜慶"},
                  
          {"colorName":"green","symbol":"希望"}
              ]            
              ;
              alert(color[0].colorName+"------>"+color[0].symbol);
              alert(color[1].colorName+"------>"+color[1].symbol);
              //對象+屬性+數(shù)組+屬性
              var jsonObj =
          {
                  "myProperty"
          :"我的屬性",
                   "myObject":{
                      "name":{
                          "firstName":"易",
                          "familyName":"志",
                          "fullName":"易志"
                      
          }
          ,
                      "age":"myObject的年齡"
                   },
                   "myFriends":[
                      
          {
                          "name"
          :"我的第①個朋友的名字",
                          "age":"我的第①個朋友的年齡"
                      
          }
          ,
                      
          {
                          "name"
          :"我的第②個朋友的名字",
                          "age":"我的第②個朋友的年齡"
                      
          }

                   ]
              }
              alert("jsonObje----------->復(fù)雜的json對象");
              alert(jsonObj.myProperty);
              alert(jsonObj.myObject.name.firstName);
              alert(jsonObj.myObject.name.familyName);
              alert(jsonObj.myObject.name.fullName);
              alert(jsonObj.myObject.age);
              alert(jsonObj.myFriends[0].name);
              alert(jsonObj.myFriends[0].age);
              alert(jsonObj.myFriends[1].name);
              alert(jsonObj.myFriends[1].age);

          </script>

           

          可通過ajax把json字符串傳到后臺 后臺可以把json字符串轉(zhuǎn)為對象,也可以把對象或者數(shù)組轉(zhuǎn)為json字符串,必須天就愛json的jar包,小測試:
          public class User extends  ActionForm{
           
          private int id;
           
          private String name;
          .

          package com.yz.jsonTest;

          import java.util.*;
          import org.json.JSONArray;
          import org.json.JSONException;
          import org.json.JSONObject;
          import org.json.JSONString;

          public class JsonTest {
           
          public static void main(String[] args) throws JSONException {
            Collection c 
          = getList();
            
          //數(shù)組
            JSONArray jary = new JSONArray(c);
            System.out.println(jary); 
          //[0,1,2,3,4]
            String jsonStr2 ="[{'a':'1','b':'2'},{'a':'3','b':'4'}]";
            JSONArray jary2 
          = new JSONArray(jsonStr2);
            System.out.println(jary2.getJSONObject(
          1).get("a"));  //3
            
          //對象
            String jsonStr="{'name':'yizhi','age':'19'}";
            JSONObject jobj 
          = new JSONObject(jsonStr);
            System.out.println(jobj.get(
          "name"));  //yizhi
            System.out.println(jobj.get("age"));  //19
            Map mp = new HashMap();
            mp.put(
          "happy""開心");
            mp.put(
          "sad""悲傷");
            JSONObject jobj2 
          = new JSONObject(mp);
            System.out.println(jobj2.get(
          "happy"));  //開心
            
           }

           
          public static List getList(){
            List lst 
          = new ArrayList();
            
          for (int i = 0; i < 5; i++{
             lst.add(i);
            }

            
          return lst;
           }

          }


          Action中。。


          package com.yz.jsonTest;

          import java.util.ArrayList;
          import java.util.List;

          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;

          import org.apache.struts.action.ActionForm;
          import org.apache.struts.action.ActionForward;
          import org.apache.struts.action.ActionMapping;
          import org.apache.struts.actions.DispatchAction;
          import org.json.JSONArray;

          public class JsonTestAction extends DispatchAction {
           
          public List<User> getUserList(){
            List
          <User> lst = new ArrayList<User>();
            
          for(int i=0;i<3;i++){
             User u 
          = new User();
             u.setId(i);
             u.setAge(i
          +20);
             u.setName(i
          +"");
             lst.add(u);
            }

            
          return lst;
            
           }

           
           
          public ActionForward TestJson(ActionMapping mapping, ActionForm form,
             HttpServletRequest request, HttpServletResponse response)
             
          throws Exception {
            JSONArray jary 
          = new JSONArray(getUserList());
            System.out.println(jary);
            
          return null;
           }

           
          }

          posts - 0, comments - 21, trackbacks - 0, articles - 101

          Copyright © H2O

          主站蜘蛛池模板: 靖西县| 朝阳区| 寻乌县| 天水市| 张家口市| 商丘市| 于田县| 泊头市| 阜宁县| 大连市| 潍坊市| 政和县| 巫山县| 恩施市| 白玉县| 怀远县| 远安县| 嘉鱼县| 湖南省| 太原市| 千阳县| 河西区| 永靖县| 茌平县| 屏边| 克拉玛依市| 仪陇县| 满洲里市| 衡阳市| 木里| 九江县| 宜昌市| 美姑县| 元谋县| 博客| 彭泽县| 长乐市| 双峰县| 昆明市| 醴陵市| 常熟市|