2013-05-30 27 views
10
đang

Scala:Không thể phân tích một json để một lớp `ProvinceJson`, với 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] 

} 

Khi tôi chạy mã này, nó báo cáo lỗi biên dịch:

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

Đỗ tôi bỏ lỡ bất cứ điều gì?

Trả lời

19

Bạn cần nói cho trình phân tích cú pháp biết định dạng nào cần sử dụng và để làm điều đó, trình phân tích cú pháp tìm kiếm đối số ẩn. Thêm mã này vào đâu đó trong mã của bạn sẽ khắc phục mọi thứ cho bạn:

implicit val formats = net.liftweb.json.DefaultFormats 
Các vấn đề liên quan