前言
JSON (官网) 是一种文本形式的数据交换格式,它比XML更轻量、比二进制容易阅读和编写,调式也更加方便。其重要性不言而喻。解析和生成的方式很多,Java中最常用的类库有:JSON-Java、Gson、Jackson、FastJson等。
本文主要用于收集整理作者之前使用的Gson的一些用法。
一、基本用法
二、Gson属性重命名
用于解决服务器属性名不一致或者有其他需要区分的情况下。
推荐博文:Google Gson 属性重命名(@SerializedName 注解)
三、序列化排除字段的方法
作用:服务器返回字段不规范,或者服务器字段冲突的时候
序列化时排除字段的几种方式
我自己常用的是通过添加transient字段进行排除,如:
public class EcgFavoriteBean extends DataSupport{
private transient int id;
@SerializedName("id")
private int myId;
private String title;
private String data_type;
}
当服务器返回的字段id,与我本地自定义的属性id相冲突的时候,我就是用上面的方法进行处理的。
四、解析Map
服务器给的数据结构:
[
{
"CHIEF": "主任医师"
},
{
"AS_CHIEF": "副主任医师"
},
{
"ATTENDING": "主治医师"
},
{
"RESIDENT": "住院医师"
},
{
"TECHNICIAN": "主管技师"
},
{
"HEALTH": "健康管理师"
},
{
"NA": "无"
}
]
需要解析为List<Map<String, String>>
数据结构。
请求的接口为以下结构即可:
@GET("assets/xxxx/")
Observable<Response<List<Map<String, String>>>> getDoctorTitles();