私は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 の両方でこれを実現する最もクリーンな方法を探しています。