Есть ли способ указать значения для разбора клаксона
data class AI constructor(@Json(ignored = true) val statusCode: Int,
@Json(name="a") val a: Long?,
@Json(name="b")val b: Long?,
@Json(name="c")val c: Date?,
@Json(name="d")val d: Long?,
@Json(name="e")val e: String?,
@Json(name="f")val f: String?) : AI()
вот как я использую библиотеку Klaxon для вышеупомянутого (ответ имеет тип Response от khttp)
if (response.statusCode == 200) {
val nullable: AI? = Klaxon().parse<AI>(response.text)
}
Проблема здесь в том, что response.text не будет иметь код состояния, потому что он фактически получается из:
response.statusCode()
В идеале я искал способ передать Клаксону пару имя-значение, которую он может использовать для установки значений, которые он не находит.
Пока что мой список решений (ни один из них не кажется оптимальным):
- сделать 200 значением по умолчанию для этого класса данных, на самом деле не желая делать это, так как 304 допустим.
- создайте класс для этих данных, затем создайте AI с помощью statusCode и экземпляра созданного класса, конечно, но если мне придется делать это для каждого случая, когда я сталкиваюсь с этим, у меня будет много классов данных с 1 или 2 полями.
- манипулировать JSON, чтобы включить код состояния, это похоже на хакерскую работу.
- надеюсь, у Клаксона есть метод установки значений во время синтаксического анализа.
Я действительно ищу что-то около пункта 4, поэтому, если у кого-то есть какие-либо идеи, я весь в ушах