को deserialize नहीं कर सकता है मैं लिफ्ट फ्रेमवर्क का उपयोग कर JSON पाठ को deserialize करने की कोशिश कर रहा हूं, और ऐसा नहीं लगता है कि वे Seq विशेषता का समर्थन करते हैं (हालांकि सूची समर्थित है)। एक उदाहरण के रूप ...लिफ्ट फ्रेमवर्क JSON डेटा
(प्रथम और अंतिम नाम के साथ) कर्मचारियों का प्रतिनिधित्व करने कुछ JSON डेटा ...
{"employees":[{"fname":"Bob","lname":"Hope"},{"fname":"Bob","lname":"Smith"}]}
यहाँ कर्मचारी डोमेन-वस्तुओं है:
case class Employee(fname: String, lname: String) { }
case class Employees(employees: Seq[Employee]) { }
और यहाँ मेरी JSON है deserialization कोड ...
class EmployeeTest {
@Test def test() {
val jsonText: String = ....
val e = deserialize(jsonText)
}
def deserialize(in: String): Employees = {
implicit val formats = net.liftweb.json.DefaultFormats
net.liftweb.json.Serialization.read[Employees](in)
}
}
यदि मैं कर्मचारी डोमेन ऑब्जेक्ट को सेक के बजाय सूची का उपयोग करने के लिए बदलता हूं, वें यह काम करता है। लेकिन अगर मैं कर सकता तो मैं वास्तव में सेक का उपयोग करना चाहता हूं।
यहां अपवाद है जब मैं उपरोक्त कोड चलाता हूं (सेक का उपयोग करके): क्या ऐसा कुछ है जो मैं इसे काम करने के लिए कर सकता हूं? आपकी सहायताके लिए धन्यवाद!
net.liftweb.json.MappingException: unknown error
at net.liftweb.json.Extraction$.extract(Extraction.scala:43)
at net.liftweb.json.JsonAST$JValue.extract(JsonAST.scala:288)
at net.liftweb.json.Serialization$.read(Serialization.scala:50)
at EmployeeTest.deserialize(EmployeeTest.scala:20)
at EmployeeTest.test(EmployeeTest.scala:13)
Caused by: java.lang.UnsupportedOperationException: tail of empty list
at scala.collection.immutable.Nil$.tail(List.scala:388)
at scala.collection.immutable.Nil$.tail(List.scala:383)
at net.liftweb.json.Meta$Constructor.bestMatching(Meta.scala:60)
at net.liftweb.json.Extraction$.findBestConstructor$1(Extraction.scala:187)
at net.liftweb.json.Extraction$.instantiate$1(Extraction.scala:192)
at net.liftweb.json.Extraction$.newInstance$1(Extraction.scala:222)
at net.liftweb.json.Extraction$.build$1(Extraction.scala:240)
at net.liftweb.json.Extraction$.mkValue$1(Extraction.scala:269)
at net.liftweb.json.Extraction$.build$1(Extraction.scala:242)
at net.liftweb.json.Extraction$$anonfun$4.apply(Extraction.scala:194)
at net.liftweb.json.Extraction$$anonfun$4.apply(Extraction.scala:194)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
at scala.collection.immutable.List.map(List.scala:45)
at net.liftweb.json.Extraction$.instantiate$1(Extraction.scala:194)
at net.liftweb.json.Extraction$.newInstance$1(Extraction.scala:222)
at net.liftweb.json.Extraction$.build$1(Extraction.scala:240)
at net.liftweb.json.Extraction$.extract(Extraction.scala:284)
at net.liftweb.json.Extraction$.extract0(Extraction.scala:172)
at net.liftweb.json.Extraction$.extract(Extraction.scala:40)
... 33 more
मैं इस समस्या में पड़ गए भी आपको खुशी है कि आपने इस सवाल से पूछा था। यह अच्छा होगा अगर लिफ्ट-जेसन ने एक अधिक जानकारीपूर्ण त्रुटि संदेश मुद्रित किया। –