gpt4 book ai didi

Android ROOM 持久化复杂对象

转载 作者:行者123 更新时间:2023-11-29 00:58:37 24 4
gpt4 key购买 nike

我有一个来自 RESTFUL API 的 JSON 响应,我已经映射到我想使用 ROOM 保留的 POJO。 POJO 有对象列表,对象类又有业务对象列表和其他业务对象,有人能给我一个例子,说明如何映射这些实体并定义 DAO 来查询它们。任何链接、示例或教程都会有很大帮助。 POJO如下

public class A{

@PrimaryKey(autoGenerate = true)
private long id;


@SerializedName("list")
@Expose
private List<B> list = null;
}

public class B{

@SerializedName("dt")
@Expose
private Integer dt;

@SerializedName("weather")
@Expose
private List<C> c= null;

public Integer getDt() {
return dt;
}

public void setDt(Integer dt) {
this.dt = dt;
}

public B withDt(Integer dt) {
this.dt = dt;
return this;
}

public java.util.List<Weather> getWeather() {
return weather;
}

public void setWeather(java.util.List<C> c) {
this.c= c;
}

public WeatherList withWeather(java.util.List<C> c) {
this.c= c;
return this;
}
}

最佳答案

你需要使用TypeConverter

创建一个所有你想转换的类

class Converters {

@TypeConverter
fun gsonToWeather(json: String?): Weather? {
return Gson().fromJson(json, Weather.class);
}

@TypeConverter
fun factWeatherToGson(weather: Weather): String? {
return Gson().toJson(weather);
}

@TypeConverter
fun gsonToB(json: String?): B? {
return Gson().fromJson(json, B.class);
}

@TypeConverter
fun bToGson(b: B): String? {
return Gson().toJson(b);
}

@TypeConverter
fun gsonToC(json: String?): C? {
return Gson().fromJson(json, C.class);
}

@TypeConverter
fun cToGson(c: C): String? {
return Gson().toJson(c);
}
}

然后在你的数据库上。

@TypeConverters(Converters.class)
abstract class YourDatabase {

}

引用:https://developer.android.com/training/data-storage/room/referencing-data

关于Android ROOM 持久化复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52693954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com