亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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對象中,然后循環(huán)遍歷,從中取出的每一個元素都是一個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<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}")
    }
}

總結

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

相關文章

  • Android之AttributeSet案例詳解

    Android之AttributeSet案例詳解

    這篇文章主要介紹了Android之AttributeSet案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • Android實現圖片查看功能

    Android實現圖片查看功能

    這篇文章主要介紹了Android如何實現圖片查看功能,幫助大家更好的理解和學習使用Android,感興趣的朋友可以了解下
    2021-04-04
  • 在Ubuntu下搭建Android開發(fā)環(huán)境

    在Ubuntu下搭建Android開發(fā)環(huán)境

    對一個程序猿來說,裝好系統(tǒng)之后的第一件事,一定是搭建開發(fā)環(huán)境,已經安裝各種開發(fā)工具,以便之后能方便順利地進行程序的開發(fā)。簡單的介紹下在Ubuntu環(huán)境下搭建Android開發(fā)環(huán)境,雖然基本上和在Windows下沒有太大差別,但有些細節(jié)上還是很值得注意的。
    2014-07-07
  • Android實戰(zhàn)RecyclerView頭部尾部添加方法示例

    Android實戰(zhàn)RecyclerView頭部尾部添加方法示例

    本篇文章主要介紹了Android實戰(zhàn)RecyclerView頭部尾部添加方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Android編程實現多列顯示的下拉列表框Spinner功能示例

    Android編程實現多列顯示的下拉列表框Spinner功能示例

    這篇文章主要介紹了Android編程實現多列顯示的下拉列表框Spinner功能,結合具體實例形式分析了Android多列表顯示功能的相關布局操作實現技巧,需要的朋友可以參考下
    2017-06-06
  • 手把手教學Android用jsoup解析html實例

    手把手教學Android用jsoup解析html實例

    本篇文章主要介紹了手把手教學Android用jsoup解析html實例,jsoup 是一款Java 的HTML解析器。具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Android自定義View實現分段選擇按鈕的實現代碼

    Android自定義View實現分段選擇按鈕的實現代碼

    這篇文章主要介紹了Android自定義View實現分段選擇按鈕的實現代碼,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Android設置控件陰影的三種方法

    Android設置控件陰影的三種方法

    這篇文章主要為大家詳細介紹了Android設置控件陰影的三種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • OpenGL Shader實例分析(8)彩色光圈效果

    OpenGL Shader實例分析(8)彩色光圈效果

    這篇文章主要為大家詳細介紹了OpenGL Shader實例分析第8篇,彩色光圈效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Android屏幕分辨率工具類使用詳解

    Android屏幕分辨率工具類使用詳解

    這篇文章主要為大家詳細介紹了Android屏幕分辨率工具類使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論