| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
RegPoate
9年前发布

GSON 简单使用

student类    

public class Student {        private int id;        private String name;        private Date birthDay;            public int getId() {            return id;        }            public void setId(int id) {            this.id = id;        }            public String getName() {            return name;        }            public void setName(String name) {            this.name = name;        }            public Date getBirthDay() {            return birthDay;        }            public void setBirthDay(Date birthDay) {            this.birthDay = birthDay;        }            @Override        public String toString() {            return "Student [birthDay=" + birthDay + ", id=" + id + ", name="                    + name + "]";        }        }  

GsonTest1    

import java.util.ArrayList;    import java.util.Date;    import java.util.List;        import com.google.gson.Gson;    import com.google.gson.reflect.TypeToken;        public class GsonTest1 {            public static void main(String[] args) {            Gson gson = new Gson();                Student student1 = new Student();            student1.setId(1);            student1.setName("李坤");            student1.setBirthDay(new Date());                // //////////////////////////////////////////////////////////            System.out.println("----------简单对象之间的转化-------------");            // 简单的bean转为json            String s1 = gson.toJson(student1);            System.out.println("简单Bean转化为Json===" + s1);                // json转为简单Bean            Student student = gson.fromJson(s1, Student.class);            System.out.println("Json转为简单Bean===" + student);            // 结果:            // 简单Bean转化为Json==={"id":1,"name":"李坤","birthDay":"Jun 22, 2012 8:27:52 AM"}            // Json转为简单Bean===Student [birthDay=Fri Jun 22 08:27:52 CST 2012, id=1,            // name=李坤]            // //////////////////////////////////////////////////////////                Student student2 = new Student();            student2.setId(2);            student2.setName("曹贵生");            student2.setBirthDay(new Date());                Student student3 = new Student();            student3.setId(3);            student3.setName("柳波");            student3.setBirthDay(new Date());                List<Student> list = new ArrayList<Student>();            list.add(student1);            list.add(student2);            list.add(student3);                System.out.println("----------带泛型的List之间的转化-------------");            // 带泛型的list转化为json            String s2 = gson.toJson(list);            System.out.println("带泛型的list转化为json==" + s2);                // json转为带泛型的list            List<Student> retList = gson.fromJson(s2,                    new TypeToken<List<Student>>() {                    }.getType());            for (Student stu : retList) {                System.out.println(stu);            }                // 结果:            // 带泛型的list转化为json==[{"id":1,"name":"李坤","birthDay":"Jun 22, 2012 8:28:52 AM"},{"id":2,"name":"曹贵生","birthDay":"Jun 22, 2012 8:28:52 AM"},{"id":3,"name":"柳波","birthDay":"Jun 22, 2012 8:28:52 AM"}]            // Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=1, name=李坤]            // Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=2, name=曹贵生]            // Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=3, name=柳波]            }    }  

[代码]Gson自定义适配器:TimestampAdapter     

package com.gdsc.core.adapter;        import java.lang.reflect.Type;    import java.sql.Timestamp;        import com.google.gson.JsonDeserializationContext;    import com.google.gson.JsonDeserializer;    import com.google.gson.JsonElement;    import com.google.gson.JsonParseException;    import com.google.gson.JsonPrimitive;    import com.google.gson.JsonSerializationContext;    import com.google.gson.JsonSerializer;        /**    * Gson TypeAdapter    * 实现了 Timestamp 类的 json 化    * @author linwei    *    */    public class TimestampAdapter implements JsonSerializer<Timestamp>, JsonDeserializer<Timestamp> {            @Override        public Timestamp deserialize(JsonElement json, Type typeOfT,                JsonDeserializationContext context) throws JsonParseException {            if(json == null){                return null;            } else {                try {                    return new Timestamp(json.getAsLong());                } catch (Exception e) {                    return null;                }            }        }            @Override        public JsonElement serialize(Timestamp src, Type typeOfSrc,                JsonSerializationContext context) {            String value = "";            if(src != null){                value = String.valueOf(src.getTime());            }            return new JsonPrimitive(value);        }            }  

[代码]注册类型适配器    

Gson gson = new GsonBuilder()                        .registerTypeAdapter(Timestamp.class, new TimestampAdapter())                        .create();