我有一些源对象 src
并想得到一个 JValue
从中。 json4s 的所有示例和文档似乎都围绕获取 JSON 编码的字符串展开,如下所示:
def encodeJson(src: AnyRef): String = {
import org.json4s.NoTypeHints
import org.json4s.JsonDSL.WithDouble._
import org.json4s.jackson.JsonMethods._
import org.json4s.jackson.Serialization
import org.json4s.jackson.Serialization.write
implicit val formats = Serialization.formats(NoTypeHints)
write(src)
}
如果我只想要最终结果那就太好了,但我更愿意写一个:
def encodeJson(src: AnyRef): JValue
好像
ToJsonWritable[T]
是我想使用的,但我似乎找不到 Writer[AnyRef]
的实现(我也找不到 json4s 的 scaladocs,它只会告诉我实现)。
最佳答案
这里的答案是org.json4s.Extraction
-- 它有一个方法 decompose(a: Any)(implicit formats: Formats): JValue
:
def encodeJson(src: AnyRef): JValue = {
import org.json4s.{ Extraction, NoTypeHints }
import org.json4s.JsonDSL.WithDouble._
import org.json4s.jackson.Serialization
implicit val formats = Serialization.formats(NoTypeHints)
Extraction.decompose(src)
}
关于scala - json4s:将类型转换为 JValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23348480/