Guest User

Untitled

a guest
Jan 16th, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. class MqttClientHelper(val mqttAndroidClient: MqttAndroidClient,
  2. val mqttConnectOptions: MqttConnectOptions) {
  3. ...
  4. var mqttEntries : MutableList<MqttSignalEntry> = mutableListOf()
  5. ...
  6. }
  7.  
  8. // Желаемый вид записи в json
  9. class MqttClientHelperJson(
  10. @Json(name = "uri") val serverUri: String,
  11. @Json(name = "connect_id") val clientId: String? = null,
  12. @Json(name = "options") val mqttConnectOptions: MqttConnectOptions,
  13. @Json(name = "topics") val mqttSignalEntryList: List<MqttClientHelper.MqttSignalEntry>
  14. )
  15.  
  16. // Этот адаптер был проигнорирован
  17. class MqttClientHelperJsonAdapter(val context: Context) {
  18. @FromJson
  19. fun clientFromJson(json: MqttClientHelperJson): MqttClientHelper {
  20. // ....
  21. }
  22.  
  23. @ToJson
  24. fun clientToJson(clientHelper: MqttClientHelper): MqttClientHelperJson {
  25. // .....
  26. }
  27. }
  28.  
  29. class MqttConnectOptionsJson(
  30. @Json(name = "keep_alive_interval") val keepAliveInterval: Int = MqttConnectOptions.KEEP_ALIVE_INTERVAL_DEFAULT,
  31. @Json(name = "user_name") val userName: String? = null,
  32. val password: String? = null,
  33. @Json(name = "clean_session") val cleanSession: Boolean = false,
  34. @Json(name = "connection_timeout") val connectionTimeout: Int = MqttConnectOptions.CONNECTION_TIMEOUT_DEFAULT,
  35. @Json(name = "automatic_reconnect") val automaticReconnect: Boolean = true
  36. )
  37.  
  38. // Этот адаптер для MqttConnectOptions отработал
  39. class MqttConnectOptionsJsonAdapter {
  40. @FromJson
  41. fun optionsFromJson(mqttConnectOptionsJson: MqttConnectOptionsJson): MqttConnectOptions {
  42. //
  43. }
  44.  
  45. @ToJson
  46. fun optionsToJson(mqttConnectOptions: MqttConnectOptions): MqttConnectOptionsJson {
  47. // ...
  48. }
  49. }
  50.  
  51. val moshi = Moshi.Builder()
  52. .add(KotlinJsonAdapterFactory())
  53. .add(MqttAndroidClientJsonAdapter(applicationContext))
  54. .add(MqttConnectOptionsJsonAdapter())
  55. .build()
  56.  
  57. val adapter = moshi.adapter(MqttClientHelper::class.java)
  58.  
  59. val str = adapter.toJson(testObj)
Add Comment
Please, Sign In to add comment