使用json镜头将JSON反序列化为Scala案例类的最佳做法是什么?
some.json:
[
{
"id": 1,
"name": "Alice"
},
{
"id": 2,
"name": "Bob"
},
{
"id": 3,
"name": "Chris"
}
]
某些案例类:
case class Foo(id: Long, name: String)
将 some.json 中的json转换为List[Foo]
的最佳方法是什么?
答案 0 :(得分:0)
json-lenses支持spray-json,你可以使用spray-json:
import spray.json._
case class Foo(id: Long, name: String)
object JsonProtocol extends DefaultJsonProtocol {
implicit val FooFormat = jsonFormat2(Foo)
}
import JsonProtocol._
val source = scala.io.Source.fromFile("some.json")
val json = try source.mkString.parseJson finally source.close()
json.convertTo[List[Foo]]
// List[Foo] = List(Foo(1,Alice), Foo(2,Bob), Foo(3,Chris))