当我在Kotlin中使用Gson时,如何为json设计一个类?

我是Json和Gson的初学者,我知道我可以将json映射到一个类中,并通过Gson将一个类映射到json。

“我的Json”是一个JSON数据,我试图设计一个类“我的类”来映射,但我认为“我的类”不好。 你能给我看一些示例代码吗? 谢谢!

我的课

data class Setting ( val _id: Long, val Bluetooth_Stauts: Boolean, val WiFi_Name,String val WiFi_Statuse: Boolean ) 

我的Json

 { "Setting": [ { "id": "34345", "Bluetooth": { "Status": "ON" }, "WiFi": { "Name": "MyConnect", "Status": "OFF" } } , { "id": "16454", "Bluetooth": { "Status": "OFF" } } ] } 

更新

以下是Rivu Chakraborty的意见,它可以很好地工作,但是它很复杂,有没有简单的方法?

 data class BluetoothDef(val Status:Boolean=false) data class WiFiDef(val Name:String, val Status:Boolean=false) data class MDetail ( val _id: Long, val bluetooth: BluetoothDef, val wiFi:WiFiDef ) data class MDetailsList(val mListMetail: MutableList) var mBluetoothDef1=BluetoothDef() var mWiFiDef1=WiFiDef("MyConnect 1",true) var aMDetail1= MDetail(5L,mBluetoothDef1,mWiFiDef1) var mBluetoothDef2=BluetoothDef(true) var mWiFiDef2=WiFiDef("MyConnect 2") var aMDetail2= MDetail(6L,mBluetoothDef2,mWiFiDef2) val mListMetail:MutableList = mutableListOf(aMDetail1,aMDetail2) var aMDetailsList=MDetailsList(mListMetail) val json = Gson().toJson(aMDetailsList) 

根据你的JSON结构,我认为下面的类定义应该与Gson一起工作

 data class Setting ( val id: Long, val Bluetooth: BluetoothDef, val WiFi:WiFiDef ) data class BluetoothDef(val Status:String) data class WiFiDef(val Name:String, val Status:String) 

说明 –

  • 如果你在JSON中得到一个对象,你应该定义一个类来和Gson一起使用。
  • 数据types应匹配,使用String如果你得到像"ON""OFF"字符串。 你可以使用Boolean如果你得到truefalse (不含引号)。
  • 除非您使用@SerializedName定义JSONvariables名称,而使用不同的variables/属性名称,否则JSON元素名称应与variables/属性名称匹配。

*注意您可以根据需要重新命名这些类

我认为这会对你有所帮助