admin管理员组

文章数量:1289483

I m building a Kotlin application (for Android). I need to convert GSON in Object.

This is the content of my FuelJSON:

{"status":1,"message":"Ok","result":[{"devices":[{"id":2,"name":"Zephyr","description":"Zephyr","brand":"Zephyr","macaddress":"A0:E6:F8:EF:F7:44","rotationTime":60,"parametri":[{"idParameter":1,"parameter":"Battito cardiaco","syncWs":true,"syncMqtt":false},{"idParameter":2,"parameter":"Frequenza respiratoria","syncWs":true,"syncMqtt":false},{"idParameter":3,"parameter":"Postura","syncWs":true,"syncMqtt":false},{"idParameter":4,"parameter":"Temperatura","syncWs":true,"syncMqtt":false},{"idParameter":5,"parameter":"ECG","syncWs":true,"syncMqtt":false},{"idParameter":6,"parameter":"RR","syncWs":true,"syncMqtt":false},{"idParameter":8,"parameter":"Attività Fisica","syncWs":true,"syncMqtt":false}]}],"defaultParameter":{"invioDatiWS":true,"tempoInvioDatiWS":60,"invioDatiMqtt":false,"tempoRotazioneZephyr":600,"tempoScansioneZephyr":60,"tempoRotazioneDosimetro":60,"tempoScansioneDosimetro":20,"tempoRotazioneBeacon":60,"tempoScansioneBeacon":25}}]}

This is the code:

 ApiHandler.getInstance().deviceList(devRequest) { deviceListJSON ->
            Log.i(TAG,"device scaricati " + deviceListJSON.toString());
            var mUser = Gson().fromJson(deviceListJSON.toString(), DeviceConfiguration::class.java)
        }

This is the DeviceConfiguration class:

package model.dataModel

import android.graphics.Bitmap
import kotlinx.serialization.descriptors.PrimitiveKind

import java.io.Serializable

data class DeviceResponse(
    val status: String,
    val message: String,
    val result: List<DeviceConfiguration>
)

data class DeviceConfiguration(
    val id: Int,
    val nome: String,
    val descrizione: String?,
    val distanza: Double?,
    val livelloDifficolta: String?,
    val alititudineMax: Double?,
    val alititudineMin: Double?,
    val tipoPercorso: String?,
    val tempoInMovimento: Int,
    val tempoTotale: Int,
    val dislivello: Double?,
    val devices: List<Dev>,
    val defaultParameter: DefaultParameter,
) : Serializable

data class Dev(
    val id: Int,
    val name: String,
    val description: String,
    val brand: String,
    val macaddress: String,
    val rotationTime: Int,
    val parametri: List<Parametri>,
): Serializable

data class Parametri(
    val idParameter: Int,
    val parameter: String,
    val syncWs: Boolean,
    val syncMqtt: Boolean
): Serializable

data class DefaultParameter(
    val invioDatiWS: Boolean,
    val tempoInvioDatiWS: Int,
    val invioDatiMqtt: Boolean,
    val tempoRotazioneZephyr: Int,
    val tempoScansioneZephyr: Int,
    val tempoRotazioneDosimetro: Int,
    val tempoScansioneDosimetro: Int,
    val tempoRotazioneBeacon: Int,
    val tempoScansioneBeacon: Int
): Serializable

This is the error:

Error retrieving device list

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
                                                                                                    com.github.kittinunf.fuel.core.FuelError$Companion.wrap(FuelError.kt:86)
                                                                                                    com.github.kittinunf.fuel.core.FuelError$Companion.wrap$default(FuelError.kt:83)
                                                                                                    com.github.kittinunf.fuel.core.requests.RequestTaskCallbacks.call(RequestTaskCallbacks.kt:30)
                                                                                                Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
                                                                                                    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
                                                                                                    com.google.gson.Gson.fromJson(Gson.java:932)
                                                                                                    com.google.gson.Gson.fromJson(Gson.java:897)
                                                                                                    com.google.gson.Gson.fromJson(Gson.java:846)
                                                                                                    com.google.gson.Gson.fromJson(Gson.java:817)
                                                                                                    it.eresult.silvermountain.MenuActivity$onCreate$2.invoke(MenuActivity.kt:94)
                                                                                                    it.eresult.silvermountain.MenuActivity$onCreate$2.invoke(MenuActivity.kt:92)
                                                                                                    it.eresult.silvermountain.helpers.handlers.ApiHandler$deviceList$1$1.invoke(ApiHandler.kt:280)
                                                                                                    it.eresult.silvermountain.helpers.handlers.ApiHandler$deviceList$1$1.invoke(ApiHandler.kt:276)
                                                                                                    com.github.kittinunf.fuel.core.DeserializableKt$response$1.invoke(Deserializable.kt:107)
                                                                                                    com.github.kittinunf.fuel.core.DeserializableKt$response$1.invoke(Unknown Source:4)
                                                                                                    com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke(Deserializable.kt:208)
                                                                                                    com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke(Unknown Source:0)
                                                                                                    com.github.kittinunf.fuel.core.RequestExecutionOptionsKt$sam$java_lang_Runnable$0.run(Unknown Source:2)
                                                                                                    com.github.kittinunf.fuel.core.DefaultEnvironment$callbackExecutor$1.execute(Environment.kt:16)
                                                                                                    com.github.kittinunf.fuel.core.RequestExecutionOptions.callback(RequestExecutionOptions.kt:44)
                                                                                                    com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1.invoke(Deserializable.kt:206)
                                                                                                    com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1.invoke(Unknown Source:2)
                                                                                                    com.github.kittinunf.fuel.core.requests.RequestTaskCallbacks.call(RequestTaskCallbacks.kt:29)
                                                                                                    com.github.kittinunf.fuel.core.requests.RequestTaskCallbacks.call(RequestTaskCallbacks.kt:20)
                                                                                                    java.util.concurrent.FutureTask.run(FutureTask.java:264)
                                                                                                    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                                                                                                    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
                                                                                                    java.lang.Thread.run(Thread.java:1012)
                                                                                            

本文标签: androidParse FuelJson to ObjectStack Overflow