小毅總結之JSON與AJAX

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

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

          <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);
              //純數組
              var color =
              [
                  
          {"colorName":"red","symbol":"喜慶"},
                  
          {"colorName":"green","symbol":"希望"}
              ]            
              ;
              alert(color[0].colorName+"------>"+color[0].symbol);
              alert(color[1].colorName+"------>"+color[1].symbol);
              //對象+屬性+數組+屬性
              var jsonObj =
          {
                  "myProperty"
          :"我的屬性",
                   "myObject":{
                      "name":{
                          "firstName":"易",
                          "familyName":"志",
                          "fullName":"易志"
                      
          }
          ,
                      "age":"myObject的年齡"
                   },
                   "myFriends":[
                      
          {
                          "name"
          :"我的第①個朋友的名字",
                          "age":"我的第①個朋友的年齡"
                      
          }
          ,
                      
          {
                          "name"
          :"我的第②個朋友的名字",
                          "age":"我的第②個朋友的年齡"
                      
          }

                   ]
              }
              alert("jsonObje----------->復雜的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字符串轉為對象,也可以把對象或者數組轉為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();
            
          //數組
            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

          主站蜘蛛池模板: 太康县| 波密县| 额尔古纳市| 无为县| 太保市| 五指山市| 梅河口市| 麻阳| 阜新| 乾安县| 灵山县| 越西县| 珠海市| 法库县| 武冈市| 紫金县| 富源县| 醴陵市| 汝州市| 新安县| 犍为县| 石狮市| 安阳市| 阳高县| 高碑店市| 东阳市| 古丈县| 雅安市| 石柱| 肇东市| 易门县| 德清县| 靖州| 庐江县| 遂平县| 平凉市| 金门县| 中阳县| 蛟河市| 康定县| 策勒县|