目录Json数据JSONObject GSON添加依赖实际操作实体类总结Json数据接下来主要学习在Android中使用两种解析方式:JSONObject和Gson。
JSONObject比如我们有如下格式的Json数据: [{"id":"1","verison":"1.0","name":"shufu"},{"id":"2","verison":"2.2","name":"pangzi"},{"id":"3","verison":"3.3","name":"john"}]使用官方提供的JSONObject。解析代码如下所示:private fun parserJSONWithJSONObject(jsonData: String) {try {val jsonArray = JSONArray(jsonData) for (i in 0 until jsonArray.length()) {val jsonObject = jsonArray.getJSONObject(i) val id = jsonObject.getString("id") val name = jsonObject.getString("name") val version = jsonObject.getString("version") Log.d("MainActivity", "id is $id") Log.d("MainActivity", "name is $name") Log.d("MainActivity", "version is $version")}} catch (e: Exception) {e.printStackTrace()}}解释:首先将数据传入JSONArray对象中,然后循环遍历,从中取出的每一个元素都是一个JSONObject对象,每个JSONObject对象中包含了id、name、version数据,只需要调用getString()方法就能取出。
GSON这是Google提供的GSON开源库,使用也很简单。它的强大之处在于可以将一段JSON格式的字符串自动映射成一个对象,从而不需要我们手动编写代码解析了。
添加依赖 implementation 'com.google.code.gson:gson:2.8.6'比如一段JSON格式的数据如下: {"name":"John","age":18}那么可以定义一个Person类,加入name和age字段,然后只需调用以下代码就能将JSON数据自动解析成一个Person对象了: val gson = Gson() val person = gson.fromJson(jsonData, Person::class.java)如果需要解析的是一段JSON数组,比如: [{"name":"John","age":18},{"name":"Jack","age":19},{"name":"shufu","age":20}]这个时候需要借助TypeToken将期望解析成的数据类型传入fromJson()方法中: val typeOf = object : TypeToken实际操作实体类新建一个App类,加入id、name、version字段:>() {}.type val people = gson.fromJson
>(jsonData, typeOf)
class App(val id: String, val name: String, val version: String)MainActivity代码: private fun parseJSONWithGSON(jsonData: String) {val gson = Gson() val typeOf = object : TypeToken总结到此这篇关于Android解析JSON格式数据的两种方式的文章就介绍到这了,更多相关Android解析JSON格式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!>() {}.type val appList = gson.fromJson
>(jsonData,typeOf) for (app in appList) {Log.d("MainActivity", "id is ${app.id}") Log.d("MainActivity", "name is ${app.name}") Log.d("MainActivity", "version is ${app.version}")}}
您可能感兴趣的文章:Android列表组件ListView使用详解之动态加载或修改列表数据Android 使用 Path 实现搜索动态加载动画效果浅谈Android Classloader动态加载分析Android NDK 开发中 SO 包大小压缩方法详解Android中JSON的4种解析方式使用和对比Android 动态加载 so实现示例详解
