Невозможно разобрать json на класс `ProvinceJson`, с лифтом

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

Вам нужно указать парсер, который форматирует для использования, и для этого парсер ищет неявный аргумент. Добавление этого кода в ваш код должно исправить вас:

implicit val formats = net.liftweb.json.DefaultFormats