@Visteras
Любознателен, интересуюсь новым и старым :)

Не могу сформировать case class что бы корректно распарсить JSON файл. Что делаю не так?

Использую json4s
Есть вот такой JSON сегмент:
"properties": [
{
"name": "Тут имя",
"values": [
[
"500/1000",
0
]
],
"displayMode": 2
}
],

Я пытаюсь его представить вот таким образом:
case class Property(
name: String,
values: Option[Option[(String, Int)]] = None,
displayMode: Int
)
В значение values возвращается None. Пробовать вообще без Option, пробовал с одним, даже с Seq пробовал. Не понимаю уже что не так. Может кто просветить? Что я делаю не так?
  • Вопрос задан
  • 224 просмотра
Решения вопроса 1
mrRontgen
@mrRontgen
Scala lover.
Оборачивать Option в Option вообще лишнее. Мне кажется, что здесь вопрос скорее про десериализацию json. Я не когда не работал с json4s, поэтому не знаю как внутри устроена (де)сериализация. Если есть возможность кастомизировать сериализацию для конкретных типов, то можно какой угодно обьект собрать (и разобрать). Например, что бы можно было удобно задействовать pattern matching можно такой класс использовать а, например, с помощью play-json можно написать казтомную сериализацию.
sealed trait Value
    case class StringValue(s: String) extends Value
    case class IntValue(i:Int) extends Value
    case class Values(one: Value, two: Value)
    case class Property(
                         name: String,
                         values: Values,
                         displayMode: Int
                       )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы