android中Gson解析

mync 4年前

最近在做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类型