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