2010-02-08 13 views
19

का उपयोग कर जेएसओएन स्ट्रिंग में स्केल ऑब्जेक्ट को सीरियलाइज करना, मुझे आश्चर्य है, क्या आप कृपया मुझे बताएं कि मैं जेसन स्ट्रिंग में एक साधारण बीन क्लास को क्रमबद्ध करने के लिए लिफ्ट-जेसन का उपयोग कैसे कर सकता हूं (मैं v2.0- एम 1)। मैंने कोशिश की:लिफ्ट-जेसन

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

और मैं हो रही है

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

धन्यवाद, -एक

उत्तर

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 
} 

लेकिन कभी कभी यह डीएसएल सिंटैक्स का उपयोग करने के लिए आसान है:

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 के साथ यह सुंदर (रेंडर()) से prettyRender() में स्थानांतरित हो गया है। आप कॉम्पैक्ट रेंडर() भी कर सकते हैं। दोनों net.liftweb.json.JsonAST._ का हिस्सा हैं – ammills01