无法使用lift-json将json解析为`ProvinceJson`类

Fre*_*ind 10 json scala lift

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]

}
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,它报告编译错误:

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]
                    ^
Run Code Online (Sandbox Code Playgroud)

我想念什么吗?

jce*_*ern 23

您需要告诉解析器要使用哪些格式,并且要做到这一点,解析器会查找隐式参数.在代码中的某处添加它应该为您解决问题:

implicit val formats = net.liftweb.json.DefaultFormats
Run Code Online (Sandbox Code Playgroud)