Как десериализовать ответ JSON с включенными экранированными строками? (Притворный клиент / Джексон) - PullRequest
0 голосов
/ 01 октября 2019

У меня есть ответ JSON, такой как:

    "buckets": [
{
    "info1": "on",
    "info2": "{\"version\":\"v1\"}"
},
{
    "info1": "off",
    "info2": "{\"version\":\"v2\"}"
}]

Это соответствует этому коду:

case class Response(buckets: Seq[Bucket])

case class Bucket(info1: String, @JsonProperty("info2") info2: Info2)

case class Info2(@JsonProperty("version") version: String)

Поскольку значение 'info2' содержит экранированные строки, его нельзя десериализоватьправильно, и я получаю следующую ошибку:

Can not instantiate value of type [simple type, class Info2] from String value ('{"info2":"version"}'); no single-String constructor/factory method

К сожалению, я не могу изменить способ ответа JSON. Каковы следующие шаги с моей стороны? Должен ли я использовать собственную технику дезертирства?

Спасибо

...