Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MqttClientHelper(val mqttAndroidClient: MqttAndroidClient,
- val mqttConnectOptions: MqttConnectOptions) {
- ...
- var mqttEntries : MutableList<MqttSignalEntry> = mutableListOf()
- ...
- }
- // Желаемый вид записи в json
- class MqttClientHelperJson(
- @Json(name = "uri") val serverUri: String,
- @Json(name = "connect_id") val clientId: String? = null,
- @Json(name = "options") val mqttConnectOptions: MqttConnectOptions,
- @Json(name = "topics") val mqttSignalEntryList: List<MqttClientHelper.MqttSignalEntry>
- )
- // Этот адаптер был проигнорирован
- class MqttClientHelperJsonAdapter(val context: Context) {
- @FromJson
- fun clientFromJson(json: MqttClientHelperJson): MqttClientHelper {
- // ....
- }
- @ToJson
- fun clientToJson(clientHelper: MqttClientHelper): MqttClientHelperJson {
- // .....
- }
- }
- class MqttConnectOptionsJson(
- @Json(name = "keep_alive_interval") val keepAliveInterval: Int = MqttConnectOptions.KEEP_ALIVE_INTERVAL_DEFAULT,
- @Json(name = "user_name") val userName: String? = null,
- val password: String? = null,
- @Json(name = "clean_session") val cleanSession: Boolean = false,
- @Json(name = "connection_timeout") val connectionTimeout: Int = MqttConnectOptions.CONNECTION_TIMEOUT_DEFAULT,
- @Json(name = "automatic_reconnect") val automaticReconnect: Boolean = true
- )
- // Этот адаптер для MqttConnectOptions отработал
- class MqttConnectOptionsJsonAdapter {
- @FromJson
- fun optionsFromJson(mqttConnectOptionsJson: MqttConnectOptionsJson): MqttConnectOptions {
- //
- }
- @ToJson
- fun optionsToJson(mqttConnectOptions: MqttConnectOptions): MqttConnectOptionsJson {
- // ...
- }
- }
- val moshi = Moshi.Builder()
- .add(KotlinJsonAdapterFactory())
- .add(MqttAndroidClientJsonAdapter(applicationContext))
- .add(MqttConnectOptionsJsonAdapter())
- .build()
- val adapter = moshi.adapter(MqttClientHelper::class.java)
- val str = adapter.toJson(testObj)
Add Comment
Please, Sign In to add comment