У меня есть приложение для Android (написанное Kotlin).
Оно использует внешний сервер, а сервер предоставляет XML в качестве ответа.
На прошлой неделе ответ сервера был изменен.В ответ был добавлен новый элемент.
Итак, мое приложение зависло ...
Чтобы решить эту проблему, я добавил аннотацию:
@JsonIgnoreProperties(ignoreUnknown = true)
И все работает нормально.
Но у меня есть вопрос.Если сервер меняет тип данных ответа, как я могу его обработать?Например, вот ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<data>
<sessionid>hello</sessionid>
<endpoint>https://test.com</endpoint>
<id>123</id>
<pw>testpassword</pw>
</data>
</response>
Теперь, если тип элемента "pw" изменяется на "Integer", как показано ниже, возникает исключение.
<?xml version="1.0" encoding="UTF-8"?>
<response>
<data>
<sessionid>hello</sessionid>
<endpoint>https://test.com</endpoint>
<id>123</id>
<pw>0000</pw> <!-- server response type is changed from String to Integer -->
</data>
</response>
Cannot deserialize value of type `java.lang.Integer` from String "pw": not a valid Integer value
И мое приложение будет аварийно завершено.
Я хочу предотвратить сбои такого рода изменений.Есть ли хорошее решение?или аннотации типа «@JsonIgnoreProperties»?
Я думаю, что тип «Любой» может быть решением.Но это последнее решение ... Я хочу найти более разумное решение.