/ / No se puede analizar un json a una clase `ProvinceJson`, con lift-json - json, scala, lift

No se puede analizar un json a una clase `ProvinceJson`, con lift-json-json, scala, lift

Código 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]

}

Cuando ejecuto este código, reporta un error de compilación:

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]
^

¿Echo de menos algo?

Respuestas

21 para la respuesta № 1

Debe indicar al analizador qué formatos utilizar y, para ello, el analizador busca un argumento implícito. Agregar esto en alguna parte de tu código debería arreglar las cosas para ti:

implicit val formats = net.liftweb.json.DefaultFormats