Entity
@Entity(tableName = "words_table")
data class Word(
@PrimaryKey
var word: String,
var date: String?,
var definition: String?,
var examples: List<String>?,
var partOfSpeech: String?,
var pronunciation: String?,
var syllables: Syllables?,
var synonyms: List<String>?
) : Serializable
data class Syllables(
var count: Int?,
var list: List<String>?
): Serializable
I want to store this object in database, however, I cannot figure out how would the TypeConverter for it look it. Currently, I have a TypeConverter class which converts a list into json and vice versa. That is working fine, but this Syllables object has an Int and a List. I am trying following code but this doesn't work for Syllables object
class Converters {
@TypeConverter
fun stringListToJson(value: List<String>?) = Gson().toJson(value)
@TypeConverter
fun jsonToStringList(value: String) =
Gson().fromJson(value, Array<String>::class.java).toList()
@TypeConverter
fun fromSyllables(value: Syllables?) = Gson().toJson(value)
@TypeConverter
fun toSyllables(value: String) =
Gson().fromJson(value, Array<Syllables>::class.java).toList()
}