解析Kotlin?JSON格式
Kotlin JSON解析
開發(fā)環(huán)境就是下面這個…
一、添加依賴
在build.gradle.kts
文件中添加下面依賴。
dependencies { implementation("com.google.code.gson:gson:2.4") }
二、解析JSON格式字符串
主要解析的格式如下,上面data類與下面這個格式是配套對著的。{"type":"allData","Dev-Area":"0757","Dev-User":"100001","Dev-Addr":"005","content":{"YxG":"0000000100000000","Ia":0.0,"Ib":0.0,"Ic":0.0,"Io":0.000},"time":1679830981975}
這條JSON格式報文中"content"
內還有其他的成員,如"YxG"
、"Ia"等
,所以json_packet_data
內有json_packet_content
這個變量。
import com.google.gson.annotations.SerializedName data class json_packet_content( @SerializedName("YxG") var yx:String?=null ) data class json_packet_data( //序列名稱為 @SerializedName("Dev-Area") var Area:String? = null, //設備名稱為 @SerializedName("Dev-User") var User:String? = null, //設備名稱為 @SerializedName("Dev-Addr") var Addr:String? = null, var type :String? = null, @SerializedName("content") var json_content: json_packet_content? = null )
@SerializedName
可以指定解析成員變量名稱,所以我這里將json_content
這個變量定向為獲取content
里面的變量。其中type
與json
成員變量同名,所以不需要重新定向,不過加上去@SerializedName("type")
也不是不可以。
下面是主要程序部分
import com.google.gson.Gson import com.google.gson.annotations.SerializedName fun main(args: Array<String>) { val jsonTestString= """{"type":"allData","Dev-Area":"0757","Dev-User":"100001","Dev-Addr":"005","content":{"YxG":"0000000100000000","Ia":0.0,"Ib":0.0,"Ic":0.0,"Io":0.000},"time":1679830981975}""" try { val parseGson = Gson().fromJson(jsonTestString, json_packet_data::class.java) println(parseGson) }catch (e:com.google.gson.JsonParseException){ println("解析異常") } }
運行效果如下
然后把data類里面的數(shù)據轉換一下,即可完成獲取相應的數(shù)據。
還有另外一種情況,解析數(shù)組?。?br />{"type": [{"wait": "ss"}, {"ss": "22"}]}
情況就比如下面這個代碼一樣處理,使用List泛型!!
import com.google.gson.Gson import com.google.gson.annotations.SerializedName data class inter_json( var wait:String?=null, var ss:String?=null ) data class json_mode( var type:List<inter_json>?=null ) fun main(args: Array<String>) { val mystring = """{"type": [{"wait": "ss"}, {"ss": "22"}]}""" try { val parseGson = Gson().fromJson(mystring, json_mode::class.java) println(parseGson) }catch (e:com.google.gson.JsonParseException){ println("解析異常") } }
可以看出來,操作方便簡單,非常的爽?。?!
二、生成JSON格式字符串
主要是解析麻煩,生成還是比較多方法的…比如直接字符串相加…略…
到此這篇關于Kotlin JSON格式解析的文章就介紹到這了,更多相關Kotlin JSON格式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android入門之Activity四種啟動模式(standard、singleTop、singleTask、singl
當應用運行起來后就會開啟一條線程,線程中會運行一個任務棧,當Activity實例創(chuàng)建后就會放入任務棧中。Activity啟動模式的設置在AndroidManifest.xml文件中,通過配置Activity的屬性android:launchMode=""設置2015-12-12Android View源碼解讀 DecorView與ViewRootImpl淺談
這篇文章主要解讀了Android View源碼,為大家詳細介紹DecorView與ViewRootImpl,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02android?studio實現(xiàn)上傳圖片到java服務器
這篇文章主要為大家詳細介紹了android?studio實現(xiàn)上傳圖片到java服務器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08Android?studio實現(xiàn)日期?、時間選擇器與進度條
這篇文章主要為大家詳細介紹了Android?studio實現(xiàn)日期、時間選擇器與進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01android實現(xiàn)圖片驗證碼方法解析(自繪控件)
本文主要介紹了android自繪控件的應用--實現(xiàn)圖片驗證碼方法案例,具有一定的參考價值,下面跟著小編一起來看下吧2017-01-01詳解Android權限管理之Android 6.0運行時權限及解決辦法
本篇文章主要介紹Android權限管理之Android 6.0運行時權限及解決辦法,具有一定的參考價值,有興趣的可以了解一下。2016-11-11