android中Gson解析

mync 8年前發布 | 36K 次閱讀 Gson JSON開發包

最近在做android項目,用到了Gson解析,總結一下放在這里,方便以后使用


服務器端代碼:

    package com.sdufe.domain;  

    /** 
     * @author lili.guo 
     *  
     *         2014-6-10下午2:20:31 
     */  
    public class People {  

        private int id;  
        private String username;  
        private String address;  

        /** 
         * 無參構造函數 
         */  
        public People() {  
            // TODO Auto-generated constructor stub  
        }  

        public People(int id, String username, String address) {  
            this.id = id;  
            this.username = username;  
            this.address = address;  
        }  

        public int getId() {  
            return id;  
        }  

        public void setId(int id) {  
            this.id = id;  
        }  

        public String getUsername() {  
            return username;  
        }  

        public void setUsername(String username) {  
            this.username = username;  
        }  

        public String getAddress() {  
            return address;  
        }  

        public void setAddress(String address) {  
            this.address = address;  
        }  

    }  

    package com.sdufe.tools;  

    import com.google.gson.Gson;  

    /** 
     * @author lili.guo 
     * 
     * 2014-6-10下午2:39:47 
     */  
    public class JsonTools {  

        /** 
         * 將普通的字符串轉化為json 
         * @param value 
         * @return 
         */  
        public static String CreateJsonStringbyGson(String value){  
            Gson gson=new Gson();  
            String json=gson.toJson(value);  
            return json;  
        }  

    }  

    package com.sdufe.Service;  

    import java.util.ArrayList;  
    import java.util.HashMap;  
    import java.util.List;  
    import java.util.Map;  

    import com.sdufe.domain.People;  

    /** 
     * @author lili.guo 
     * 
     * 2014-6-10下午2:27:36 
     */  
    public class JsonService {  

        public People getPeople(){  
            People people=new People(1001, "Thea", "beijing");  
            return people;  
        }  

        public List<People> getList(){  
            List<People> list=new ArrayList<People>();  
            list.add(new People(1001, "Thea", "beijing"));  
            list.add(new People(1001, "Thea", "beijing"));  
            list.add(new People(1001, "Thea", "beijing"));  
            return list;  
        }  

        public List<String> getString(){  
            List<String> list=new ArrayList<String>();  
            list.add("beijing");  
            list.add("shanghai");  
            return list;  
        }  

        public List<Map<String, Object>> getListMap(){  
            List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();  
            Map<String, Object> map1=new HashMap<String, Object>();  
            map1.put("id", 1001);  
            map1.put("username", "Thea");  
            map1.put("address", "beijing");  
            list.add(map1);  
            Map<String, Object> map2=new HashMap<String, Object>();  
            map2.put("id", 1001);  
            map2.put("username", "Thea");  
            map2.put("address", "beijing");  
            list.add(map2);  
            return list;  
        }  

    }  

其中jsonService中轉化的數據類型比較多,差不多經常用到的幾種都放在這里了


客戶端代碼:

    package com.sdufe.tools;  

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

    import com.google.gson.Gson;  
    import com.google.gson.reflect.TypeToken;  
    import com.sdufe.domain.People;  

    /** 
     * @author lili.guo 
     *  
     *         2014-6-10下午2:53:16 
     */  
    public class GsonTool {  

        public static People getPeople(String jsonString) {  

            Gson gson = new Gson();  
            People people = gson.fromJson(jsonString, People.class);  
            return people;  
        }  

        public static List<People> getList(String jsonString) {  

            Gson gson = new Gson();  
            List<People> list=new ArrayList<People>();  
            list=gson.fromJson(jsonString, new TypeToken<List<People>>() {  
            }.getType());  
            return list;  
        }  

        public static List<String> getString(String json){  

            Gson gson=new Gson();  
            List<String> list=new ArrayList<String>();  
            list=gson.fromJson(json, new TypeToken<List<String>>() {  
            }.getType());  
            return list;  
        }  

        public List<Map<String, Object>> getListMap(String json){  
            List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();  
            Gson gson=new Gson();  
            list=gson.fromJson(json, new TypeToken<List<Map<String,Object>>>() {  
            }.getType());  
            return list;  
        }  

    }  

稍微解釋一下

服務器端負責把String類型的字符串轉化成json類型,而客戶端則負責把json類型解析成普通的String類型

 本文由用戶 mync 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!