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

时间:2016-08-02 18:16:17

标签: scala argonaut

如何编写扩展方法以从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值的键...

1 个答案:

答案 0 :(得分:0)

Argonaut在内部支持此功能,您可以使用PrettyParams执行以下操作:

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

希望这能涵盖您的问题!