如何停止在Grails中编组空值字段

时间:2012-10-15 17:59:09

标签: json grails marshalling

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

class Result {
   String key
   List errors
}

现在要么存在密钥,要么存在错误,但不是两者都存在。如果Result有一个键,我不希望编组的JSON有一个空值的errors字段,如下所示

{"errors":null,"key":"abcde"}

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

class Result {

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

}

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

1 个答案:

答案 0 :(得分:1)

尝试使用此Grails 2.0.3会导致错误,指示errors字段与GORM自动添加的grails.validation.ValidationErrors字段(也称为errors)之间存在冲突。您的编组看起来没问题,因此您可能只需将字段名称更改为errors以外的其他名称?