Json转换利器Gson之实例二-Gson注解和GsonBuilder
来源:互联网 发布:五十知天命,六十 编辑:程序博客网 时间:2024/05/16 05:59
import java.util.Date;import com.google.gson.annotations.Expose;import com.google.gson.annotations.SerializedName;public class Student {private int id;@Exposeprivate 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;}@Overridepublic 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的构建方式为GsonBuilder,区别于test1中的Gson gson = new Gson();Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation() //不导出实体中没有用@Expose注解的属性 .enableComplexMapKeySerialization() //支持Map的key为复杂对象的形式 .serializeNulls().setDateFormat("yyyy-MM-dd HH:mm:ss:SSS")//时间转化为特定格式 .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)//会把字段首字母大写,注:对于实体上使用了@SerializedName注解的不会生效. .setPrettyPrinting() //对json结果格式化. .setVersion(1.0) //有的字段不是一开始就有的,会随着版本的升级添加进来,那么在进行序列化和返序列化的时候就会根据版本号来选择是否要序列化. //@Since(版本号)能完美地实现这个功能.还的字段可能,随着版本的升级而删除,那么 //@Until(版本号)也能实现这个功能,GsonBuilder.setVersion(double)方法需要调用. .create();Student student1 = new Student();student1.setId(1);student1.setName("李坤");student1.setBirthDay(new Date());// //////////////////////////////////////////////////////////System.out.println("----------简单对象之间的转化-------------");// 简单的bean转为jsonString s1 = gson.toJson(student1);System.out.println("简单Bean转化为Json===" + s1);// json转为简单BeanStudent 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());List<Student> list = new ArrayList<Student>();list.add(student1);list.add(student2);list.add(student3);System.out.println("----------带泛型的List之间的转化-------------");// 带泛型的list转化为jsonString s2 = gson.toJson(list);System.out.println("带泛型的list转化为json==" + s2);// json转为带泛型的listList<Student> retList = gson.fromJson(s2,new TypeToken<List<Student>>() {}.getType());for (Student stu : retList) {System.out.println(stu);}}}
http://blog.csdn.net/lk_blog/article/details/7685190
0 0
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Json转换利器Gson-Gson注解和GsonBuilder
- Json转换利器Gson二、GsonBuilder
- Gson注解和GsonBuilder
- android炫酷动画柱状图表例子
- 《Linux 多线程服务端编程:使用 muduo C++ 网络库》URL 列表
- android中的数据库操作
- Jetty 的工作原理以及与 Tomcat 的比较
- 在CentOS上安装GITLAB
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Mac OS X使用软件包管理工具HomeBrew
- 薪金宝正式上线 货基收益率再次下滑 权益类产品加入大战 互联网金融大战谋求转型
- 如何导入已有的*.sql文件
- “互联网精神”将给中国企业界带来什么影响?
- 制作启动U盘与定制多系统启动
- 【js设计模式笔记---适配器模式】
- 第十三周上机实践项目——圆的比较
- 在命令行 登陆Oracle数据库 ORA-12154: TNS: 无法解析指定的连接标识符 无监听程序