我正在使用 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/