Scalaコード:
import net.liftweb.json._
case class Province(id: String, name: String, parentName: Option[String], parentId: Option[String])
case class ProvinceJson(provinceData: List[Province])
object Test extends Application {
val json = """ {
| "provinceData":
| [
| {
| "name":"hb",
| "parentName":null,
| "parentId":null,
| "id":"450"
| }
| ]
|}
| """.stripMargin
parse(json).extract[ProvinceJson]
}
このコードを実行すると、コンパイルエラーが報告されます。
could not find implicit value for parameter formats: net.liftweb.json.Formats
parse(json).extract[ProvinceJson]
^
not enough arguments for method extract: (implicit formats: net.liftweb.json.Formats, implicit mf: scala.reflect.Manifest[com.thoughtworks.sfexpress.sf_ws.ProvinceJson])com.thoughtworks.sfexpress.sf_ws.ProvinceJson.
Unspecified value parameters formats, mf.
parse(json).extract[ProvinceJson]
^
私は何も欠場しますか?
回答:
回答№1の21どの形式を使用するかをパーサーに伝える必要があり、そのためにパーサーは暗黙的な引数を探します。これをコードのどこかに追加すると、問題が解決するはずです。
implicit val formats = net.liftweb.json.DefaultFormats