以下是一个将Gson转换的API数据存储到Room数据库中的解决方案,包含代码示例:
首先,确保你的Android项目中已添加了Room和Gson的依赖。
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String,
val email: String
)
@Dao
interface UserDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(user: User)
@Query("SELECT * FROM users")
fun getUsers(): List
}
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
val gson = Gson()
val userJson = // 从API获取的JSON数据
val user = gson.fromJson(userJson, User::class.java)
val db = Room.databaseBuilder(applicationContext, AppDatabase::class.java, "my-database").build()
val userDao = db.userDao()
userDao.insert(user)
val users = userDao.getUsers()
// 处理获取到的用户数据
这就是将Gson转换的API数据存储到Room数据库中的解决方案。你可以根据你的需求调整代码,并添加必要的错误处理和其他功能。