2013-05-30 9 views
10

Scala Code analysieren:kann kein json zu einer `ProvinceJson` Klasse, mit Lift-json

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] 

} 

Wenn ich diesen Code ausführen, meldet es Kompilierungsfehler:

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

Do I etwas vermissen?

Antwort

19

Sie müssen dem Parser mitteilen, welche Formate verwendet werden sollen, und dazu muss der Parser nach einem impliziten Argument suchen. Wenn Sie das irgendwo in Ihrem Code hinzufügen, sollten Sie die Dinge für Sie beheben:

implicit val formats = net.liftweb.json.DefaultFormats 
Verwandte Themen