Как desgin класс для json, когда я использую Gson в Kotlin?

Я новичок в Json и Gson, я знаю, что могу сопоставить json в классе и сопоставить класс с json через Gson.

«Мой 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" } } ] } 

обновленный

Следующее сделано соображением Риву Чакраборти, оно может работать хорошо, но это сложно, есть ли простой способ?

 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) 

Объяснение –

  • Если вы получаете объект в своем JSON, вы должны определить класс для использования с Gson.
  • Типы данных должны совпадать, используйте String если вы получаете строки, такие как "ON" и "OFF" . Вы можете использовать Boolean если вы получаете true и false (без кавычек).
  • Имя элемента JSON должно соответствовать имени переменной / свойства, если вы не используете @SerializedName для определения имени переменной JSON при использовании другого имени переменной / свойства.

* Примечание. Вы можете переименовать классы, если хотите.

Я думаю, это будет полезно для вас