का उपयोग कर रहा json4s, जहां मैं एक पार्स json से स्ट्रिंग मान निकालने के लिए कोशिश कर रहा हूँ के लिए स्काला कंसोल सत्र के बाद किया है मूल्य:निकालें स्ट्रिंग json4s
scala> import org.json4s._
import org.json4s._
scala> import org.json4s.native.JsonMethods._
import org.json4s.native.JsonMethods._
scala> val s = """ {"a": "hello"} """
s: String = " {"a": "hello"} "
scala> val json = parse(s)
json: org.json4s.JValue = JObject(List((a,JString(hello))))
scala> json \ "a"
res0: org.json4s.JValue = JString(hello)
scala> res0.extract[String]
<console>:17: error: No org.json4s.Formats found. Try to bring an instance of org.json4s.Formats in scope or use the org.json4s.DefaultFormats.
res0.extract[String]
^
scala> import org.json4s.Formats._
import org.json4s.Formats._
scala> res0.extract[String]
<console>:20: error: No org.json4s.Formats found. Try to bring an instance of org.json4s.Formats in scope or use the org.json4s.DefaultFormats.
res0.extract[String]
^
scala> import org.json4s.DefaultFormats._
import org.json4s.DefaultFormats._
scala> res0.extract[String]
<console>:23: error: No org.json4s.Formats found. Try to bring an instance of org.json4s.Formats in scope or use the org.json4s.DefaultFormats.
res0.extract[String]
^
org.json4s.DefaultFormats
, org.json4s.Formats
और वहाँ सदस्य पहले ही दायरे में हैं। मैं इसे कैसे ठीक करूं?
EDIT1
@mfirry
के जवाब से, इस काम करता है:
scala> implicit val formats = DefaultFormats
formats: org.json4s.DefaultFormats.type = [email protected]
scala> val json = parse(""" {"a": "hello", "b": 1.2} """)
json: org.json4s.JValue = JObject(List((a,JString(hello)), (b,JDouble(1.2))))
scala> (json \ "b").extract[String]
res6: String = 1.2
scala> (json \ "b").extract[Double]
res7: Double = 1.2
'extractOpt' रिटर्न निर्दिष्ट प्रकार का विकल्प, यदि फ़ील्ड एक वैकल्पिक है। – ruhong