Json转换利器Gson之实例二-Gson注解和GsonBuilder
来源:程序员人生 发布时间:2015-04-22 08:38:52 阅读次数:4237次
有时候我们不需要把实体的所有属性都导出,只想把1部份属性导出为Json.
有时候我们的实体类会随着版本的升级而修改.
有时候我们想对输出的json默许排好格式.
... ...
请看下面的例子吧:
实体类:
-
import java.util.Date;
-
-
import com.google.gson.annotations.Expose;
-
import com.google.gson.annotations.SerializedName;
-
-
public class Student {
-
private int id;
-
-
@Expose
-
private String name;
-
-
@Expose
-
@SerializedName("bir")
-
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 + "]";
-
}
-
-
}
测试类:
-
import java.util.ArrayList;
-
import java.util.Date;
-
import java.util.List;
-
-
import com.google.gson.FieldNamingPolicy;
-
import com.google.gson.Gson;
-
import com.google.gson.GsonBuilder;
-
import com.google.gson.reflect.TypeToken;
-
-
public class GsonTest2 {
-
-
public static void main(String[] args) {
-
-
Gson gson = new GsonBuilder()
-
.excludeFieldsWithoutExposeAnnotation()
-
.enableComplexMapKeySerialization()
-
.serializeNulls().setDateFormat("yyyy-MM-dd HH:mm:ss:SSS")
-
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
-
.setPrettyPrinting()
-
.setVersion(1.0)
-
-
-
.create();
-
-
-
-
Student student1 = new Student();
-
student1.setId(1);
-
student1.setName("李坤");
-
student1.setBirthDay(new Date());
-
-
-
System.out.println("----------简单对象之间的转化-------------");
-
-
String s1 = gson.toJson(student1);
-
System.out.println("简单Bean转化为Json===" + s1);
-
-
-
Student student = gson.fromJson(s1, Student.class);
-
System.out.println("Json转为简单Bean===" + student);
-
-
-
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());
-
-
 
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
------分隔线----------------------------
------分隔线----------------------------