日期:2014-05-16  浏览次数:20305 次

Json转换利器Gson之实例六-注册TypeAdapter及处理Enum类型

枚举类型给我们的程序带来了好处,如何用Gson来实现与Json的互转呢?请看本文.

?

本文重点掌握如何自己写一个TypeAdapter及注册TypeAdapter和处理Enum类型.

?

实体类:

?

?

?

  1. public?enum?PackageState?{??
  2. ????PLAY,?UPDATE,?UPDATING,?DOWNLOAD,?DOWNLOADING,??
  3. }??

?

  1. public?class?PackageItem?{??
  2. ????private?String?name;??
  3. ????private?PackageState?state;??
  4. ????private?String?size;??
  5. ??
  6. ????public?String?getName()?{??
  7. ????????return?name;??
  8. ????}??
  9. ??
  10. ????public?void?setName(String?name)?{??
  11. ????????this.name?=?name;??
  12. ????}??
  13. ??
  14. ????public?PackageState?getState()?{??
  15. ????????return?state;??
  16. ????}??
  17. ??
  18. ????public?void?setState(PackageState?state)?{??
  19. ????????this.state?=?state;??
  20. ????}??
  21. ??
  22. ????public?String?getSize()?{??
  23. ????????return?size;??
  24. ????}??
  25. ??
  26. ????public?void?setSize(String?size)?{??
  27. ????????this.size?=?size;??
  28. ????}??
  29. ??
  30. ????@Override??
  31. ????public?String?toString()?{??
  32. ????????return?"PackageItem?[name="?+?name?+?",?size="?+?size?+?",?state="??
  33. ????????????????+?state?+?"]";??
  34. ????}??
  35. }??


自己写一个转换器实现JsonSerializer<T>接口和jsonDeserializer<T>接口:

?

?

  1. mport?java.la