我正在使用https://github.com/json4s/json4s。如何将其值(例如JDoubleJBool)转换为相应的Scala数据类型-DoubleBoolean

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并想将其值提取为DoubleBoolean(预先知道所需的类型)。
可以使用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/

10-12 02:10