2014-04-28 13 views
11

Bazı kaynak nesnem var src ve ondan bir JValue almak istiyorum. Tüm örnekler ve json4s için dokümantasyon, JSON kodlanmış dize alma etrafında şöyle görünmektedir:json4s: JValue'a dönüştürme türü

: Ben sadece sonucunu istiyorsanız harika, ama ben yazmayı tercih ediyorum

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] kullanmak istediğim şeymiş gibi görünüyor, ancak Writer[AnyRef] için bir uygulama bulamıyorum (json4'ler için yalnızca uygulamalarını söyleyen scaladokları bulamıyorum).

cevap

9

burada cevap org.json4s.Extraction - bir yöntem decompose(a: Any)(implicit formats: Formats): JValue sahiptir:

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) 
} 
İlgili konular