如果我在room数据库实体中使用JSONObject,我会遇到一个问题。
@Entity(tableName = RoomDbConstant.formTable)
data class FormEntity(
@NonNull
@SerializedName("id")
@PrimaryKey(autoGenerate = false)
var formId: String,
@NonNull
@SerializedName("title")
var formTitle: String?,
@NonNull
var formCategoryId: String?,
@NonNull
var formSubCategoryId: String?,
@NonNull
var formData: String?,
@NonNull
var is_active: String? = AppConstants.ACTIVE,
@NonNull
var status: String? = AppConstants.NONE,
@NonNull
var is_sent_server: String? = AppConstants.NOT_SENT,
@NonNull
var tempEntryExisted: Boolean? = false,
@NonNull
@Embedded(prefix="FormDataEntity")
var formDataEntity: FormDataEntity?,
) : Comparable<FormEntity?> {
override fun compareTo(other: FormEntity?): Int {
return formTitle?.compareTo(other?.formTitle.toString(), ignoreCase = true)!!
}
}
data class FormDataEntity(
@Embedded
@NonNull
var response: FormFieldsEntity
)
data class FormFieldsEntity(
@NonNull
var is_active: String = AppConstants.ACTIVE,
@NonNull
@Embedded
var fields: ArrayList<FieldEntity>,
@NonNull
@SerializedName("title")
var formTitle: String,
@NonNull
@SerializedName("id")
var formId: String,
@NonNull
@SerializedName("gfpdf_form_settings")
var gfpdfFormSettings: JSONObject,
)
我有三个类,第一个类是FormEntity,它有一个子类FormDataEntity,而这个FormDataEntity类有一个子类,它有JSONObject。因此,我从api获取数据,其中有一个名为“GFPDF_FORM_Settings”的JSONObject。在此输入图像说明
因此,当从API中使用GSON转换获取数据时,我将在room databse中添加数据。
val data: FormDataEntity = Gson().fromJson(obj, FormDataEntity::class.java)
val formModel = FormEntity(formId.toString(),Utilities.separateTitle(data.response.formTitle)[0].toString()
,mCatId,mSubCatId.toString(),obj,data.response.is_active,
AppConstants.NONE,AppConstants.NOT_SENT,false,data)
But not able to do because I get error of roomdatabase.
工程表单/Version 2 Room数据库脱机功能/EngineeringForm/App/Build/TMP/KAPT3/Stubs/Debug/com/App/EngineeringForm/Controller/database/Entities/FormEntities/FormFieldSentity.java:20:错误:无法确定如何将该字段保存到数据库中。可以考虑为其添加一个类型转换器。私有org.json.jsonObject GFPDFFormSettings;^[WARN]请求增量批注处理,但由于以下处理器不是增量的,因此禁用了支持:AndroidX.Room.RoomProcessor(DYNAMIC)。
我尝试了所有的方法,但没有找到如何在实体类中使用JSONObject的解决方案。
不能将JSONObject
保存为RoomDB中的实体。在这种情况下,您可以将整个GFPDFForm
JSON复制到JSON into Kotlin data class
插件中,为其创建唯一的数据类。
您可以在这里引用:https://plugins.jetbrains.com/plugin/9960-json-to-kotlin-class-jsontokotlinclass-
关于将JSON转换为数据类,有很多答案
我是android studio的初学者,希望在room数据库中存储语言数组列表。有人能建议我怎么做吗?
一切正常(使用AsyncTask插入、更新、删除),但按id获取一行不是。。。 主要问题是有两种活动。 回收视图 我想在点击RecyclerView列表项后,从数据库中按id获取一个项。如果我用LiveData获取它,我就无法将其与UI线程中的变量同步。 如何从数据库中获取一行? 在DAO中,我有: 在存储库中: 如果我把它写在主线程里 它给出了一个错误: 我应该使用AsyncTask,但如何使用
所以我遵循MVVM架构,在那里我有一个银行交易数据库: 我的Dao类有两个查询: 仓库: 视图模型: 在主片段中,我正在用数据库中的所有事务填充回收视图: 我的问题是:如何从DAO调用函数 要填充相同的recyclerView(当按下某个按钮时)?我不能吃这样的东西 在我的DAO中,因为查询应该在另一个线程上执行(我不允许在主线程上执行),所以我的DAO不能返回事务列表<你能提供帮助吗?
由于我已经从下面的代码中导出了数据库文件,但我无法打开导出的文件,如何打开导出的文件?
我刚刚实现了离线数据保存的空间。但在实体类中,我会得到以下错误: 类如下: 提前道谢。
所以我根据YouTube上的教程创建了一个房间数据库。我有两个栏day and likes,每个栏都有int.目前,我已经用三行数据手动填充了数据库。 下面是手动填充数据库的代码: 在我的Dao类中,我当前有Insert、Update、deleteAll和getall...方法。这里是道: } 现在,我要从Room数据库中检索基于当天的数据。所以我想要第6天的likes数,它是1。我想检索数据并将