簡體   English   中英

json4s:將類型轉換為JValue

[英]json4s: Convert type to JValue

我有一些源對象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)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM