最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android解析JSON格式數(shù)據(jù)的兩種方式(JSONObject和Gson)

 更新時間:2022年07月29日 08:54:22   作者:peacefullGemini  
json數(shù)據(jù)的解析相對而言,還是比較容易的,實現(xiàn)的代碼也十分簡單,下面這篇文章主要給大家介紹了關(guān)于Android解析JSON格式數(shù)據(jù)的兩種方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

Json數(shù)據(jù)

接下來主要學習在Android中使用兩種解析方式:JSONObject和Gson。

JSONObject

比如我們有如下格式的Json數(shù)據(jù):

  [{"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()
        }
    }

解釋:首先將數(shù)據(jù)傳入JSONArray對象中,然后循環(huán)遍歷,從中取出的每一個元素都是一個JSONObject對象,每個JSONObject對象中包含了id、name、version數(shù)據(jù),只需要調(diào)用getString()方法就能取出。

GSON

這是Google提供的GSON開源庫,使用也很簡單。它的強大之處在于可以將一段JSON格式的字符串自動映射成一個對象,從而不需要我們手動編寫代碼解析了。

添加依賴

   implementation 'com.google.code.gson:gson:2.8.6'

比如一段JSON格式的數(shù)據(jù)如下:

  {"name":"John","age":18}

那么可以定義一個Person類,加入name和age字段,然后只需調(diào)用以下代碼就能將JSON數(shù)據(jù)自動解析成一個Person對象了:

 val gson = Gson()
  val person = gson.fromJson(jsonData, Person::class.java)

如果需要解析的是一段JSON數(shù)組,比如:

  [{"name":"John","age":18},
         {"name":"Jack","age":19}, 
         {"name":"shufu","age":20}]

這個時候需要借助TypeToken將期望解析成的數(shù)據(jù)類型傳入fromJson()方法中:

 val typeOf = object : TypeToken<List<Person>>() {}.type
 val people = gson.fromJson<List<Person>>(jsonData, typeOf)

實際操作

實體類

新建一個App類,加入id、name、version字段:

class App(val id: String, val name: String, val version: String)

MainActivity代碼:

 private fun parseJSONWithGSON(jsonData: String) {
    val gson = Gson()
    val typeOf = object : TypeToken<List<App>>() {}.type
    val appList = gson.fromJson<List<App>>(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}")
    }
}

總結(jié)

到此這篇關(guān)于Android解析JSON格式數(shù)據(jù)的兩種方式的文章就介紹到這了,更多相關(guān)Android解析JSON格式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android SQLite數(shù)據(jù)庫增刪改查操作的使用詳解

    Android SQLite數(shù)據(jù)庫增刪改查操作的使用詳解

    本篇文章介紹了,在Android中SQLite數(shù)據(jù)庫增刪改查操作的使用詳解。需要的朋友參考下
    2013-04-04
  • Android自定義View實現(xiàn)垂直時間軸布局

    Android自定義View實現(xiàn)垂直時間軸布局

    這篇文章主要為大家詳細介紹了Android自定義View實現(xiàn)垂直時間軸布局的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Android自定義APP全局懸浮按鈕

    Android自定義APP全局懸浮按鈕

    這篇文章主要為大家詳細介紹了Android自定義APP全局懸浮按鈕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Android實現(xiàn)懸浮對話框代碼

    Android實現(xiàn)懸浮對話框代碼

    這篇文章主要介紹了Android實現(xiàn)懸浮對話框代碼的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • Android錄制按鈕源碼解析

    Android錄制按鈕源碼解析

    這篇文章主要為大家詳細解析了Android錄制按鈕源碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Android實現(xiàn)動態(tài)體溫計

    Android實現(xiàn)動態(tài)體溫計

    這篇文章主要為大家詳細介紹了Android實現(xiàn)動態(tài)體溫計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • Android自定義控件實現(xiàn)帶文字提示的SeekBar

    Android自定義控件實現(xiàn)帶文字提示的SeekBar

    這篇文章主要給大家介紹了關(guān)于Android自定義控件實現(xiàn)帶文字提示的SeekBar的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • Android 優(yōu)化之a(chǎn)pp啟動優(yōu)化的實現(xiàn)

    Android 優(yōu)化之a(chǎn)pp啟動優(yōu)化的實現(xiàn)

    這篇文章主要介紹了Android 優(yōu)化之啟動優(yōu)化的實現(xiàn),啟動分為冷啟動和熱啟動,溫啟動,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解ASP.NET Core MVC四種枚舉綁定方式

    詳解ASP.NET Core MVC四種枚舉綁定方式

    這篇文章主要介紹了詳解ASP.NET Core MVC四種枚舉綁定方式, 小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Android開發(fā)之拖動條和評分組件用法分析

    Android開發(fā)之拖動條和評分組件用法分析

    這篇文章主要介紹了Android開發(fā)之拖動條和評分組件用法,結(jié)合實例形式較為詳細的分析了Android拖動條及評分組件的布局與功能實現(xiàn)技巧,需要的朋友可以參考下
    2017-07-07

最新評論

东乌珠穆沁旗| 东乡族自治县| 东莞市| 济南市| 福贡县| 南康市| 滕州市| 视频| 麻栗坡县| 安远县| 久治县| 西峡县| 通江县| 南郑县| 鄂伦春自治旗| 西盟| 镇安县| 泾阳县| 揭东县| 全南县| 逊克县| 抚顺市| 麻栗坡县| 贵定县| 绥化市| 车险| 芷江| 定远县| 万荣县| 寿阳县| 娄烦县| 伊川县| 佳木斯市| 和静县| 南宫市| 九龙城区| 斗六市| 边坝县| 汉源县| 哈巴河县| 呈贡县|