缘起

在Android上,FastJson算是常用Json解析框架之一了,它还专门为Android提供了一个版本,compile 'com.alibaba:fastjson:1.1.54.android'.但遗憾的是,fastjson并没有针对Android框架自带的json类org.json.JSONObject,org.json.JSONArray提供序列化反序列化方案。如当类中属性的类型是org.json.JSONObject时,就会出错。

public static class Product{    private org.json.JSONObject element;    public org.json.JSONObject getElement() {        return element;    }    public void setElement(org.json.JSONObject element) {        this.element = element;    }}

这个Product类用fastjson来序列化,反序列化就会出错,不会得到预期结果。

如何解决呢?

一个方案是将org.json.JSONObject替换为 com.alibaba.fastjson.JSONObject

但这个方案可能会带来大量的改动,而且会带来项目与fastjson的深深依赖,有没有其他办法呢?

其实,fastjson为我们提供了自定义序列化反序列化的方案,可以针对于特定类型,使用自定义的序列化反序列化实现。这就是 ObjectSerializer,ObjectDeserializer.

通过向fastjson注册自定义的序列化类,反序列化类来让fastjson支持android自带json

全部代码

更多相关文章

  1. Android的移动存储解决方案之SharedPreferences
  2. 第3.1.1节 应用程序的基本结构
  3. Android平台上的MDM (Mobile Device Management)解决方案
  4. Android(安卓)Studio 无法编译,出现下列错误提示的解决方案。
  5. Android之activity跳转显示桌面及切换黑屏问题解决方案
  6. android 获取原生gps坐标
  7. Error:(15) No resource identifier found for attribute 'round
  8. Android(安卓)Activity启动慢
  9. Android学习中遇到的问题及解决方案

随机推荐

  1. Android(安卓)NDK环境搭建和配置
  2. android v7包
  3. android 2.2 迁移 android 4.0 theme sty
  4. (android)如何破解多盟广告sdk (一)
  5. Android MVP应用
  6. 【进阶】从linux到android,进程的方方面面
  7. Android 多媒体综述
  8. Android 如何建立你的菜单
  9. 【Android 修炼手册】常用技术篇 -- 聊聊
  10. QQ邮箱Android客户端产品体验报告