【问题标题】:How to remove keys with null values from Argonaut Json objects如何从 Argonaut Json 对象中删除具有空值的键
【发布时间】:2016-08-02 18:16:16
【问题描述】:

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

我试过了:

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 对象顶层具有 null 值的键...

【问题讨论】:

  • 我对该库的理解是,您必须明确定义您希望镜头钻入的嵌套级别。
  • 您需要递归到节点才能做到这一点。

标签: scala argonaut


【解决方案1】:

Argonaut 内部支持此功能,您可以使用 PrettyParams 做您想做的事情:

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

希望这能涵盖您的问题!

【讨论】:

    猜你喜欢
    • 2019-10-30
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    相关资源
    最近更新 更多