10.1 Converting json to data classes
處理json數據,是常見的工作,解析和處理json技術含量低,考驗的是細心和耐心,原始的辦法的就是對着json字符串一個一個的解析,一般做法是用gson
或jackson
等轉換工具,輔助json的解析。 這裏介紹一個直接把json串轉成java 代碼的工具和使用方法,可以提高生產效率,減少人工手誤出錯。
10.1.1 Java
GsonFormatter
是一個在Android Studio 中的插件,可以非常快速地把json串轉換成java 類和內部類。
安裝步驟
Android Studio
–> Preference
–> Plugins
–> Browse repositories
–> 輸入 GsonFormat
–> 選擇並安裝
首次安裝後,需要重啓Android Studio 才能啓用該插件
使用過程
以如下Json 爲例:
{
"name": "BeJson",
"url": "http://www.bejson.com",
"page": 88,
"isNonProfit": true,
"address": {
"street": "科技園路.",
"city": "江蘇蘇州",
"country": "中國"
},
"links": [
{
"name": "Google",
"url": "http://www.google.com"
},
{
"name": "Baidu",
"url": "http://www.baidu.com"
},
{
"name": "SoSo",
"url": "http://www.SoSo.com"
}
]
}
在Android Studio中新建一個類DataBeanFromJson
選擇菜單Code
–> Generate
會彈出下圖的菜單,
安裝完GsonFormat
插件後,這裏比以前多了一個GsonFormat
的菜單,點擊後,出現輸入Json的界面。 界面左下角有Settings
設置,可以設置轉換時的一些細節,例如變量是Private 還是public 的,轉換使用的庫等等。
我這裏使用的 public 的成員變量,這樣就沒有多餘的getter 和setter 方法。 解析庫使用的是Gson。這樣生成的代碼就是符合Gson 樣式的代碼。
設置選好後,點擊ok, 再點擊ok。彈出確認窗口。
在這可以選擇具體使用哪些key並寫入代碼中。再次ok後, 代碼就生成好了。
如圖所示,int, boolean, String, 對象類型, 列表類型 都可以順利轉換。
另外,不一定非得新建一個類, 在任何一個類中按上述操作都可以當前類中添加代碼。
10.1.2 Kotlin
可以使用RoboPOJOGenerator
插件來生成Kotlin
代碼。RoboPOJOGenerator
是一個開源項目
安裝
在Android Studio 的插件中查找RoboPojoGenerator
“Preferences” -> “Plugins” -> “Browse Repositories” -> “RoboPOJOGenerator”
使用
選中目標文件夾, 在菜單中選擇File
–>new
–>Generate POJO from JSON
這個插件可以生成java代碼,也可以生成kotlin代碼。 勾選kotlin後,生成kotlin代碼
生成代碼如下,多個類是在不同的文件下。
注意在build.gradle
中配置
compile 'com.google.code.gson:gson:2.8.0'
compile 'org.glassfish:javax.annotation:10.0-b28'
結語
如上,介紹了java 和kotlin 語言下如何快速生成json 文件對應的代碼,希望能夠提高工作效率,祝大家編程愉快。