Сопоставить часто меняющееся значение JSON с соответствующим элементом в Scala - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть значение JSON, например

{
    "valType": "Integer",
    "data": 5
}

или

{
    "valType": "Integer",
    "data": [2, 3]
}

или

{
    "valType": "String",
    "data": "value1"
}

или

{
    "valType": "String",
    "data": ["string1", "string2"]
}

значение данные ключ меняется.Когда я пытался сопоставить их в Scala с

class value {
    var valType: String = _
    var data: Any = _
}

с помощью ObjectMapper, он отлично работает.

Но при попытке сделать это с помощью lift-json, используя класс

case class value(valType: String, data: Any) {}

это ошибка выброса

Exception in thread "main" net.liftweb.json.MappingException: No usable value for data
No information known about type

Как я могу разрешить то же самое в lift-json?

Vesrion: Scala: 2.11 Lift-json: 2.6

1 Ответ

0 голосов
/ 31 декабря 2018

Вы должны написать собственный сериализатор, который анализирует поле «значение», различное в зависимости от содержимого поля «valType».

Как написать сериализатор, описано в Сериализация не поддерживаетсятипы раздел read-файла lift-json.

...