我有一个变量
var movieArray = movieText.parseJson
属于哪一类
println(movieArray.getClass)
class spray.json.JsArray
如何将其转换为案例类序列,例如
case class Movie(id: Int, title: String)
I tried
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 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]]
movieArray 的每个元素都必须转换为 Movie 类型的对象。
movieArray.map(_.convertTo[Movie])
当然,上述语句取决于从 Json 转换为 Movie 实例 (JsonProtocol) 的逻辑的可用性。请参考以下示例
https://github.com/spray/spray-json#providing-jsonformats-for-case-classes https://github.com/spray/spray-json#providing-jsonformats-for-case-classes
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)