為 Retrofit2 提供的 FastJson 轉換庫
為 Retrofit2 提供的 FastJson 轉換器(Retrofit2-FastJson-Converter)
前言
Retrofit 是 Android 和 Java 平台上一款優秀且被廣泛使用的 Http 客戶端,GitHub 上 21K+ 的 Star 和 4.3K+ 的 Fork 充分證明了 Retrofit 的風靡程度。
Retrofit 在 Android 平台如此流行與它及其簡潔的調用方式和優秀的可擴展、可配置性是分不開的。我們客戶端在和服務端交互的時候通常採用 Json 格式來傳遞數據,客戶端拿到服務端傳遞過來的 Json 格式的數據後需要對它進行解析;Retrofit2 並未提供 Json 解析功能,但可提供介面讓客戶端程序員配置 Json Converter以選擇自己喜歡的 Json 解析庫。
Json 解析庫有很多:Gson、Jackson、FastJson等等。Retrofit 優秀的可配置性可以讓我們客戶端程序員隨意選擇心怡的 Json 解析庫,Retrofit 針對 Gson 和 Jackson 都提供相應的 Converter;可能由於 FastJson 是國內程序員開發的原因,Retrofit 對於 FastJson 並沒有提供對應的 Converter ,這對於使用 FastJson 的開發者是不友好的。
使用
好在 Retrofit 提供了介面來讓開發者實現自己的 Json Converter 。實現 Converter 雖然簡單,但每次使用 Retrofit2 + FastJson 組合時都實現一套顯然是沒必要的。我使用 FastJson 實現了一個 Converter: Retrofit2-FastJson-Converter ,有同樣需求的同學只需要使用我這個 Converter 庫就好啦,不必再去自定義。使用方式如下:
1、添加依賴配置
Step 1. 由於 Retrofit2-FastJson-Converter 是發布到 JitPack 的,因此首先需要在項目根目錄的 build.gradle 中加入 JitPack 的倉庫地址,具體配置如下:
allprojects {ntrepositories {ntt...nttmaven { url https://jitpack.io }nt}n}n
Step 2. 在具體使用 Retrofit2-FastJson-Converter 的 module 中加入依賴配置:
dependencies {ntcompile com.github.BaronZ88:Retrofit2-FastJson-Converter:lastVersionn}n
2、配置 Retrofit Converter
在 Retrofit.Builder 的 addConverterFactory 方法中傳入 FastJsonConverterFactory.create() :
Retrofit retrofit = new Retrofit.Builder()n .baseUrl(baseUrl)n .addConverterFactory(FastJsonConverterFactory.create())n .addCallAdapterFactory(RxJavaCallAdapterFactory.create())n .client(client)n .build();n
最後貼上 Retrofit2-FastJson-Converter 源碼地址 :https://github.com/BaronZ88/Retrofit2-FastJson-Converter
其他
一直不滿意各博客平台上的閱讀體驗,排版糟糕、布局混亂、字體醜陋、各種廣告及雜七雜八的組件分散了讀者寶貴的注意力;最最重要的是這年頭竟然找不到一個優雅、簡介、有美感的博客平台!!!我不能忍!為了賞臉閱讀我文章的讀者!為了我這僅剩的一點點審美!我採用 GitHub Pages + Hexo + NexT 搭建了個人博客 http://baronzhang.com/ ,不過身為拖延症晚期患者的我,直到最近才將博客系統的各項功能陸續完善起來。之前的文章均已同步,之後所有的文章也會第一時間在個人博客上發布,追求更好閱讀體驗的同學可以移步 baronzhang.com 。
如果你喜歡我的文章,就關注下我的知乎專欄或者在 GitHub 上添個 Star 吧!
- 知乎專欄:https://zhuanlan.zhihu.com/baron
- GitHub:https://github.com/BaronZ88
- 個人博客:http://baronzhang.com/
推薦閱讀: