json - 如何阻止空值字段在 Grails 中编码

标签 json grails marshalling

我正在使用 Grails 1.3.7 并具有以下 DTO

class Result {
   String key
   List errors
}

现在将出现 key 或错误,但不会同时出现。如果 Result 有一个键,我不希望编码的 JSON 的错误字段为空值,如下所示
{"errors":null,"key":"abcde"}

我看了configuration options对于转换器,它没有抑制空值的选项。我还查看了该页面上标题为“自定义转换器结果”的最后一部分,并注册了一个对象编码器,如下所示
class Result {

   static {
      grails.converters.JSON.registerObjectMarshaller(Result) {
     return it.properties.findAll {k,v -> v != null}
     }
   }

}

但结果仍然包含空值错误。我正在为 XML 和 JSON 寻找最简洁的方法来实现这一点。

最佳答案

尝试这个 Grails 2.0.3 会导致一个错误,指出 errors 之间的冲突。字段和 GORM 的自动添加 grails.validation.ValidationErrors字段(也称为 errors)。您的 marshaller 看起来不错,因此您可能只需将字段名称更改为 errors 以外的其他名称?

关于json - 如何阻止空值字段在 Grails 中编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12901318/

相关文章:

Java 编码器性能

json - Go:JSON 编码嵌套结构;错误地省略了外部字段

java - 在 Google App Engine 上编写 jSON API 的最佳方式

javascript - 请求谷歌电子表格时的简单 Json 格式

php - 如何检查json数据数组是否有返回值

ios - 无法将 NSDictionary 值转换为 json

spring - Grails:在 Bootstrap 代码的 destory 闭包中访问 spring bean?

html - 如何在GEB中选择内部元素的文本?

grails - Grails-SpringSec依赖于不在Maven Central中的JAR?

c# - 将字节数组作为 char* 从 C# 传递到 C++ DLL