我有一个变量
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]]
答案 0 :(得分:0)
movieArray的每个元素都必须转换为Movie类型的对象。
movieArray.map(_.convertTo[Movie])
当然,上面的语句取决于从Json转换为Movie实例(JsonProtocol)的逻辑可用性。请参考以下示例
https://github.com/spray/spray-json#providing-jsonformats-for-case-classes