2010-02-08 2 views

risposta

26

È possibile "scomporre" una classe case in JSON e poi renderlo. Esempio:

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 
} 

Ma a volte è più facile da usare la sintassi 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

E se non è una classe case? –

+0

Con liftweb 3.1.0 questo è passato da pretty (render()) a prettyRender(). Puoi anche eseguire compactRender(). Entrambi fanno parte di net.liftweb.json.JsonAST._ – ammills01