1

私はGrails 1.3.7を使用しており、次のDTOを持っています

class Result {
   String key
   List errors
}

これで、キーまたはエラーのいずれかが表示されますが、両方は表示されません。結果にキーがある場合、以下に示すように、マーシャリングされた JSON に null 値のエラー フィールドを持たせたくありません。

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

コンバーターの構成オプションを調べましたが、null 値を抑制するオプションがありません。また、「コンバーターの結果のカスタマイズ」というタイトルのそのページの最後のセクションを見て、次のようにオブジェクトマーシャラーを登録しました

class Result {

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

}

ただし、結果には null 値のエラーが含まれています。XML と JSON の両方でこれを実現する最もクリーンな方法を探しています。

4

1 に答える 1

1

errorsこの Grails 2.0.3 を試すと、フィールドと GORM の自動追加grails.validation.ValidationErrorsフィールド (名前も) との間の競合を示すエラーが発生しますerrors。マーシャラーは問題ないように見えるので、フィールド名を別のものに変更する必要があるかもしれませerrorsん。

于 2012-10-15T20:29:59.170 に答える