Я столкнулся с проблемой с GSON при десериализации ObservableArrayMap
рассмотрим следующий класс:
class SomeTestClass {
val name : ObservableField<String> = ObservableField("initial value")
val someNumber = ObservableField(0)
val someMap = ObservableArrayMap<String, String>()
}
Затем я создаю экземпляр и сериализую его так:
fun someFunction() {
val converter = Gson()
val test = SomeTestClass()
test.someMap["cat"] = "dog"
val json = converter.toJson(test)
v("GSON", json)
val backFromJson = converter.fromJson(json, SomeTestClass::class.java)
}
сериализованный JSON, который я получаю:
{
"name": {
"mValue": "initial value"
},
"someMap": {
"cat": "dog"
},
"someNumber": {
"mValue": 0
}
}
, чего я и ожидал, однако строка fromJson
завершается с ошибкой: com.google.gson.JsonSyntaxException: duplicate key: cat
Я могу заменитьObservableArrayMap
с ObservableField<Map<K, V>>
, но это не дает мне необходимых функций.
Заранее спасибо.