2016-08-02 4 views
0

Wie eine Erweiterung Methode, um alle Tasten mit einem null Wert aus einem Argonaut Json Objekt entfernen geschrieben werden kann:Wie Schlüssel mit Nullwerten von Argonaut Json entfernen Objekten

ich das versucht:

package object Extensions { 
    implicit class JsonExtensions(val json: Json) extends AnyVal { 
    def removeNulls: Json = { 
     json.withObject(j => JsonObject.from (j.toMap.filter(!_._2.isNull).toList)) 
    } 
    } 
} 

aber es scheint nur Schlüssel mit null Werten auf der obersten Ebene des Json Objekts zu entfernen ...

+0

Mein Verständnis dieser Bibliothek ist, dass Sie explizit definieren müssen, wie viele Verschachtelungsebenen die Linsen in die Linsen bohren sollen. –

+0

Sie müssen in die Knoten recurse, um dies zu tun. – pedrofurla

Antwort

0

Argonaut unterstützt dies intern, Sie könnenverwendenzu tun, was Sie wollen:

def removeNulls: Json = { 
    json.pretty(PrettyParams.nospace.copy(dropNullKeys = true)).toJson 
} 

Hoffe das deckt Ihre Frage!

Verwandte Themen