如何编写扩展方法以从Argonaut null
对象中删除具有Json
值的所有键:
我试过这个:
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))
}
}
}
但它似乎只是在null
对象的顶层删除Json
值的键...
Argonaut在内部支持这一点,你可以使用PrettyParams
做你想做的事情:
def removeNulls: Json = {
json.pretty(PrettyParams.nospace.copy(dropNullKeys = true)).toJson
}
希望这能涵盖你的问题!