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

时间:2013-05-30 04:00:15

标签: 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]

}

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

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 个答案:

答案 0 :(得分:23)

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

implicit val formats = net.liftweb.json.DefaultFormats