Android 将数据存储在通过改装接收的对象中

Android 将数据存储在通过改装接收的对象中,android,json,kotlin,retrofit2,Android,Json,Kotlin,Retrofit2,因此,我使用Reformation2获取一个JSON文件并读取它 部分数据是我想存储在对象中的坐标(蓝锥和黄锥),这些对象存储在ArrayList中 如何将数据放入对象中并将其存储在列表中以供以后使用 Json文件: { "engineTemp" : "90", "speed" : "130", "blueCones":[{ "x" : 6.0, "y" : 5.0 }, {

因此,我使用Reformation2获取一个JSON文件并读取它

部分数据是我想存储在对象中的坐标(蓝锥和黄锥),这些对象存储在ArrayList中

如何将数据放入对象中并将其存储在列表中以供以后使用

Json文件:

{
    "engineTemp" : "90",
    "speed" : "130",
    "blueCones":[{
            "x" : 6.0,
            "y" : 5.0
        },
        {
            "x" : 7.0,
            "y" : 7.0
        }
    ],
    "yellowCones":[{
            "x" : 11.0,
            "y" : 5.0
        },
        {
            "x" : 12.0,
            "y" : 6.0
        }
    ]
}
接口:

interface JsonApi {

    @GET("/test.json")
    fun getAllData(): Call<Data>
}
蓝色和黄色锥体类:

data class BlueCone(var x: Double, var y: Double)

data class YellowCone(var x: Double, var y: Double)

因为您使用的是Gson,所以可以轻松地将JSON映射到对象。默认情况下,它使用变量的名称进行映射,所以我只是遵循您的命名方案

首先,您只需要一个
Cone

data class Cone(
    val x: Float,
    val y: Float
)
然后可以创建一个类来包含整个响应

data class MyResponse(
    val engineTemp: String,
    val speed: String,
    val blueCones: List<Cone>,
    val yellowCones: List<Cone>
)
数据类MyResponse(
val engineTemp:String,
瓦尔速度:字符串,
瓦尔蓝锥:列表,
瓦尔黄锥:列表
)
通过您的接口,您可以设置类

@GET("/test.json")
fun getAllData(): Call<MyResponse>
@GET(“/test.json”)
fun getAllData():调用

JsonParser
是无意义的。只需使用
GsonConverter
…就可以了(这需要在类中添加注释,以便将其转换为@Advice Dog的答案所缺少的…)。
data class MyResponse(
    val engineTemp: String,
    val speed: String,
    val blueCones: List<Cone>,
    val yellowCones: List<Cone>
)
@GET("/test.json")
fun getAllData(): Call<MyResponse>