我有一些源对象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)
}
Run Code Online (Sandbox Code Playgroud)
如果我只想要最终结果,这很好,但我更愿意写一个:
def encodeJson(src: AnyRef): JValue
Run Code Online (Sandbox Code Playgroud)
这似乎ToJsonWritable[T]是我想要使用的,但我似乎无法找到一个实现Writer[AnyRef](也不能找到json4s的scaladocs,它只会告诉我实现).
Tra*_*kel 11
这里的答案是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)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6075 次 |
| 最近记录: |