2013-05-30 13 views
10

Scala代碼:無法解析一個JSON到`ProvinceJson`類,帶電梯,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] 

} 

當我運行這段代碼,它報告編譯錯誤:

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

我是否想念什麼?

回答

19

您需要告訴解析器要使用哪種格式,並且要解析器查找隱式參數。在代碼中添加此代碼應該爲您解決以下問題:

implicit val formats = net.liftweb.json.DefaultFormats