2010-02-08 36 views
19

Tôi tự hỏi, bạn vui lòng cho tôi biết làm thế nào tôi có thể sử dụng lift-json để tuần tự hóa một lớp bean đơn giản thành chuỗi json (tôi đang sử dụng v2.0- M1). tôi đã cố gắng:Nối tiếp một đối tượng scala vào một chuỗi JSon bằng cách sử dụng thang máy-json

val r = JsonDSL.pretty(JsonAST.render(myBean)) 

và tôi nhận được

[error] found : MyBean 
[error] required: net.liftweb.json.JsonAST.JValue 

Cảm ơn, -A

Trả lời

26

Bạn có thể "phân hủy" một lớp hợp thành JSON và sau đó render nó. Ví dụ:

scala> import net.liftweb.json.JsonAST._ 
scala> import net.liftweb.json.Extraction._ 
scala> import net.liftweb.json.Printer._  
scala> implicit val formats = net.liftweb.json.DefaultFormats 

scala> case class MyBean(name: String, age: Int) 
scala> pretty(render(decompose(MyBean("joe", 35)))) 
res0: String = 
{ 
    "name":"joe", 
    "age":35 
} 

Nhưng đôi khi nó dễ dàng hơn để sử dụng cú pháp DSL:

scala> import net.liftweb.json.JsonDSL._ 
scala> val json = ("name" -> "joe") ~ ("age" -> 35) 
scala> pretty(render(json)) 
res1: String = 
{ 
    "name":"joe", 
    "age":35 
} 
+5

gì nếu nó không phải là một lớp trường hợp? –

+0

Với liftweb 3.1.0, điều này đã chuyển từ pretty (render()) thành prettyRender(). Bạn cũng có thể làm CompactRender(). Cả hai đều là một phần của net.liftweb.json.JsonAST._ – ammills01

Các vấn đề liên quan