我是Json和Gson的初学者,我知道我可以将json映射到一个类中,并通过Gson将一个类映射到json。
“我的Json”是json数据,我尝试设计一个类“My Class”进行映射,但是我认为“My Class”不好。您能给我看一些示例代码吗?谢谢!
我的类(class)
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<MDetail>)
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<MDetail> = 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)
说明-
String
和"ON"
之类的字符串,请使用"OFF"
。如果要获取Boolean
和true
(不带引号),则可以使用false
。 *注意如果需要,可以重命名类
我认为对您有帮助