简单的说 序列化 就是把实体类转json(多传给后台用)
反序列化 就是将json转成需要的实体类(后台给前台的数据)
在反序列化的时候 前后端定义的字段名不一样 可以使用@SerializedName在序列化的时候 前端给后台的数据不需要实体类中的一些字段 可使用 @Expose
1.反序列化的时候 如字段名大小写不一致 或者完全不一样 如DataModel 中使用@SerializedName("planno") 、 @SerializedName(value = "consid", alternate = {"cons_id"})
@SerializedName(value = "consid", alternate = {"cons_id"})这个是后台多个字段都对应前台的一个字段 如果后台的这两个字段都有值 用后面的一个字段 "cons_id"的值。
2. 序列化的时候 去掉一些字段 如DataModel 中使用
@Expose(serialize = false) 序列化设置false 既可以去掉这个字段
@Expose() 默认true 保留字段
序列化方法注意:
private String listToJson(List<DataModel> dataList) {
GsonBuilder builder = new GsonBuilder();
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
String json = gson.toJson(dataList);
return json;
}复制代码