我正在使用https://github.com/json4s/json4s。如何将其值(例如JDouble
,JBool
)转换为相应的Scala数据类型-Double
和Boolean
?
UPDATE :
scala> (json \ "status")
res8: org.json4s.JValue = JBool(false)
scala> (json \ "status").extract[Boolean]
<console>:16: error: No org.json4s.Formats found. Try to bring an instance of org.json4s.Formats in scope or use the org.json4s.DefaultFormats.
(json \ "status").extract[Boolean]
最佳答案
查看代码(https://github.com/json4s/json4s/blob/7c70e9664232ffee4acf24c8969424cd37957736/ast/src/main/scala/org/json4s/JsonAST.scala)显示您只需要调用JValue.values
方法。
更新:从您的评论看来,您拥有一个JDouble
并想提取其Double
值(并类似地从Boolean
中提取一个JDouble
似乎并不多。相反,您有一个JValue
并想将其值提取为Double
或Boolean
(预先知道所需的类型)。
可以使用extract
完成,如您链接到的自述文件所述:
(json \ "status").extract[Double]
要么:
(json \ "status").extract[Boolean]
另请参见此测试文件以获取更多示例:
https://github.com/json4s/json4s/blob/master/tests/src/test/scala/org/json4s/ExtractionExamplesSpec.scala
关于scala - 将JDouble转换为Double(JSON库),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16941541/