Gson用法整理
来源:互联网 发布:qq同步助手 mac 编辑:程序博客网 时间:2024/05/21 21:37
1 概述
Gson是Google提供的一款json解析工具,用来在Java对象和Json数据之前进行映射。其源代码位于github.
解析需要注意:
1、类里面的属性名必须和json字段里面的key一模一样,或者使用@SerializedName指定别名和json中的名字一模一样。2、{} 代表一个对象 3、[]代表一个List4、如果不想些get/set方法,需要吧属性设置为public5、如果内部嵌套定义类,则此类必须是静态的,否则会出错
2 简单对象转化
Gson gson = new Gson();//Model -> json, 其中myMode支持一般对象类型,内部可以包含对象嵌套,List对象类型等。String json = gson.toJson(myModel); //json->Model 1:myMode为简单对象,即内部不包含复杂对象嵌套SimpleModel myModel = gson.fromJson(json, SimpleModel.class);//json->ComplexModel 2:myMode为嵌套对象,或者List组合对象等Type type = new TypeToken<List<ComplexModel>>(){}.getType();List<ComplexModel> list = gson.fromJson(json, type);
3 Gson注解和GsonBuilder
@Expose 导出标记注解,配合GsonBuilder使用(excludeFieldsWithoutExposeAnnotation此设置就是不使用没有@Expose注解的属性)@Expose (serialize = false, deserialize = false) ,serialize = false, deserialize = false,序列化和反序列化的时候都不包含此字段。默认设置都是为true。transient申明字段以此来说明序列化和反序列化都不包含这个字段。@SerializedName("name") 指定别名,也就是json中名字为别名name,实际名字是属性中定义的名字。也就是说序列化的时候,这个属性的名字会被替换成name,解析的时候name会被替换成属性名。@Since(version) 用于维护版本,从某个版本version开始,有这个字段.和setVersion配合使用。@Until(version) 用于维护版本,到某个版本version为止,没有这个字段。和setVersion配合使用。
GsonBuilder用来自定义输出的json格式,解析说明:
excludeFieldsWithoutExposeAnnotation 不导出没有@Expose注解的属性enableComplexMapKeySerialization 支持key为map的复杂对象形式setDateFormat("yyyy-MM-dd HH:mm:ss:SSS") 时间格式转化为制定格式setFieldNamingPolicy(policy) 设置字段某些属性为policy,注:此注解对于实体上使用了@SerializedName注解的不会生效. policy取值如下: FieldNamingPolicy.UPPER_CAMEL_CASE 首字母大写 FieldNamingPolicy.LOWER_CASE_WITH_DASHES 全部转为小写 FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES 全部转为大写excludeFieldsWithModifiers(modifier) 某些修饰符的属性不导出,modify为: Modifier.PRIVATE Modifier.PUBLIC Modifier.PROTECTEDsetPrettyPrinting 对json执行格式化优化setVersion 序列化的时候会根据版本选择时候序列化此字段。serializeNulls 默认取值为null的对象,将不会出现在json中,此设置将取值为null的字段也输出到json字符串中
4 TypeAdapter
TypeAdapter是Gson实现解析的核心类。可以通过GsonBuilder.registerTypeAdapter来注册自己的TypeAdapter。
read 方法实现将json字符串反序列化为Java对象write 方法实现将Java对象序列化为json字符串
5 测试Demo地址
github
3 0
- Gson用法整理
- Gson用法整理
- Gson用法
- Gson的简要用法
- Gson的基本用法
- Android Gson用法
- Android Gson用法
- gson常用用法小结
- Gson的简单用法
- Gson的用法
- Gson用法1
- gson常用用法小结
- Gson用法详解
- GSON的用法
- Gson 常用用法
- Gson用法一
- Gson基础用法总结
- Gson之基本用法
- 泊松分布和泊松过程
- python try 代码组检测错误和异常
- ext获取单元格信息
- 第十三周项目1Prim 算法验证
- mysql权限设置
- Gson用法整理
- Hibernate 与Mysql 关键字冲突
- 表间列复制操作
- c3p0配置
- webservice入门之CXF教程
- 简单词法分析器实现
- JS的一些日常知识(更新中)
- JQuery按照form上传文件+asp.net后台处理(二)
- 第十一周 项目一(3)-中序线索化二叉树的算法验证