Как создать класс case для этого ввода json и преобразовать его в объект?

Я получаю эту строку JSON из веб-API:

{"results":{"Inne":"23.3","Ute":"5.8"}}

Как мне создать класс case, чтобы соответствовать этому выводу?


Это моя попытка:

case class Results(Inne: String, Ute: String)

object MyJsonProtocol extends DefaultJsonProtocol {
  implicit val tempsFormat = jsonFormat2(Results)
}

Я пытаюсь преобразовать с помощью val temps = jsonin.convertTo[Results], и очевидно, что это не работает, так как он ожидает только два значения.

1 ответ

Решение
case class Results(Inne: String, Ute: String )
case class Result(results: Results)
object MyJsonProtocol extends DefaultJsonProtocol {
    implicit val tempsFormat = jsonFormat2(Results)
    implicit val resultsFormat = jsonFormat1(Results)
}

Или вы можете использовать линзы https://github.com/jrudolph/json-lenses

case class Results(Inne: String, Ute: String )
object MyJsonProtocol extends DefaultJsonProtocol {
    implicit val tempsFormat = jsonFormat2(Results)
    implicit val resultsFormat = jsonFormat1(Results)
}

jsonin.extract[Results]('results)
Другие вопросы по тегам