2010-02-08 2 views
19

Мне интересно, пожалуйста, дайте мне знать, как я могу использовать lift-json для сериализации простого класса bean в json string (я использую v2.0- М1). Я пробовал:Сериализация объекта scala в JSon String с использованием lift-json

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

и я получаю

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

Спасибо, -A

ответ

26

Вы можете "разложить" случай класса в формате JSON, а затем сделать его. Пример:

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 
} 

Но иногда проще использовать 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

Что делать, если это не тот случай, класс? –

+0

С liftweb 3.1.0 это переместилось из pretty (render()) в prettyRender(). Вы также можете делать compactRender(). Оба являются частью net.liftweb.json.JsonAST._ – ammills01

Смежные вопросы