कोई भी मुझे दिखा सकता है कि प्ले फ्रेम में (विशेष रूप से Play v2.3.x) JSON में POJO या वर्ग उदाहरण को JSON में कैसे परिवर्तित किया जाए?
उदाहरण के लिए मेरे पास इस तरह का कोड है:
case class Foo(name: String, address: String)
def index = Action {
request => {
val foo = Foo("John Derp", "Jem Street 21") // I want to convert this object to JSON
Ok(Json.toJson(foo)) // I got error at here
}
}
त्रुटि संदेश:
Com.fasterxml.jackson.data bind.JsonNode का एक उदाहरण नहीं लिख सकता HTTP प्रतिक्रिया के लिए। परिभाषित करने का प्रयास करें लिखने योग्य [com.fasterxml.jackson.databind.JsonNode]
अद्यतन करें: मुझे पता चला कि उपरोक्त त्रुटि के गलत आयात के कारण है Json
वर्ग, यह होना चाहिए: import play.api.libs.json.Json
। हालाँकि मुझे अभी भी नीचे अंतर्निहित समस्या पर त्रुटि मिली।
मैंने पढ़ा है यह ट्यूटोरियल, लेकिन जब मैंने निहितार्थ की कोशिश की Writes[Foo]
कोड:
implicit val fooWrites: Writes[Foo] = (
(JsPath "name").write[String] and
(JsPath "address").write[String]
)(unlift(Foo.unapply))
मुझे मिला Can"t resolve symbol and
तथा Can"t resolve symbol unlift
इंटेलीज में त्रुटि। इसके अलावा ट्यूटोरियल का कोड सिर्फ JSON के ऑब्जेक्ट के रूपांतरण के लिए जटिल दिखता है। मुझे आश्चर्य है कि क्या ऐसा करने के लिए अधिक सरल तरीका है?
उत्तर:
उत्तर № 1 के लिए 7आप एक प्राप्त कर सकते हैं Writes[Foo]
का उपयोग करके उदाहरण Json.writes
:
implicit val fooWrites = Json.writes[Foo]
दायरे में इस निहितार्थ होने के बाद आपको सभी को बदलना होगा Foo
JSON के लिए। डोक्यूमेन्टेशन देखें यहाँ तथा यहाँ JSON के बारे में अधिक जानकारी के लिए पढ़ता / लिखता है।
उत्तर № 2 के लिए 1
दूसरी समस्या - Can"t resolve symbol and
- है एक इंटेलीज बग स्काला प्लगइन के संस्करण 1.3 में पेश किया गया। स्केला प्लगइन के संस्करण 1.3.3 में, अब एक वर्कअराउंड सेट प्राथमिकता चेकबॉक्स है:
भाषाएँ और फ्रेमवर्क> स्काला> कोर (डिफ़ॉल्ट) टैब> पुराने का उपयोग करें निहितार्थ खोज एल्गोरिथ्म