scala - Play 2 json抑制空元素

标签 scala playframework-2.0

我正在使用 Play 2 案例类 inception 来转换 POSO(普通旧 scala 对象)和 json 字符串。

在 toJson 写入转换上,我希望空 POSO 值(字符串和列表)甚至不显示在 json 字符串中...如何做到这一点?

最佳答案

您可以非常轻松地添加隐式函数omitEmpty

implicit class RichJsObject(original: JsObject) {
  def omitEmpty: JsObject = original.value.foldLeft(original) { 
    case (obj, (key, JsString(st))) if st.isEmpty => obj - key
    case (obj, (key, JsArray(arr))) if arr.isEmpty => obj - key
    case (obj, (_, _)) => obj
  }
}

然后您可以在 JsObject 上调用 omitEmpty

scala> Json.obj("x" -> "", "y" -> JsArray()).omitEmpty
res5: play.api.libs.json.JsObject = {}

关于scala - Play 2 json抑制空元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21664192/

相关文章:

scala - Slick 中的动态查询参数(排序)

scala - 更改spark _temporary目录路径,以避免删除 Parquet

scala - 如何将自定义日期时间格式转换为时间戳?

scala - 更新不可变 AST 的最简单方法是什么?

playframework - Play Framework 2.0 模板引擎定义可写变量

Scala Play 2.0.2 多文件上传

scala - 为什么 scala 可序列化性在具有相同构造函数参数类型的案例类中有所不同?

java - 无法从 Scala 访问 Java 静态方法

playframework-2.0 - Play Framework 2.0 在服务器启动时安排 Akka Actor

Scala 类型错误 - 不带类型参数,应为 : one