Как преобразовать JsArray в последовательность классов case с spray-json?
У меня есть переменная
var movieArray = movieText.parseJson
который имеет класс
println(movieArray.getClass)
class spray.json.JsArray
Как мне преобразовать его в последовательность классов дел, например
case class Movie(id: Int, title: String)
Я старался
1. movieArray.convertTo[Seq[Movie]]
2. movieArray.map(_.convertTo[Movie])
3. for (i <- movieArray) println(i)
выдает ошибки...
1. Cannot find JsonReader or JsonFormat type class for Seq[Movie]
2. value map is not a member of spray.json.JsValue
3. value foreach is not a member of spray.json.JsValue
Какие-либо предложения? Помощь приветствуется.
Правильный ответ https://github.com/spray/spray-json/issues/259
import spray.json._
import DefaultJsonProtocol._
var movieArray = movieText.stripMargin.parseJson
case class Movie(id: Int, title: String)
implicit val movieFormat = jsonFormat2(Movie)
movieArray.convertTo[Seq[Movie]]
1 ответ
Каждый элемент movieArray должен быть преобразован в объект типа Movie.
movieArray.map(_.convertTo[Movie])
Конечно, приведенное выше утверждение зависит от наличия логики для преобразования из Json в экземпляр Movie (JsonProtocol). Пожалуйста, обратитесь к следующему примеру