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 文件对应的代码,希望能够提高工作效率,祝大家编程愉快。