如何从 Argonaut Json 对象中删除具有空值的键

sun*_*ant 3 scala argonaut

如何编写扩展方法以null从 ArgonautJson对象中删除所有具有值的键:

我试过这个:

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))
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但它似乎只是nullJson对象的顶层删除具有值的键......

Iai*_*eid 5

Argonaut 内部支持此功能,您可以使用它PrettyParams来执行您想要的操作:

def removeNulls: Json = {
  json.pretty(PrettyParams.nospace.copy(dropNullKeys = true)).toJson
}
Run Code Online (Sandbox Code Playgroud)

希望这涵盖了您的问题!