1

Grails 2.2.4 でカスタム JSON オブジェクト マーシャラーを作成中です。JSON に変換しようとしているクラスには、belongsTo と hasMany の両方の関係があります。関係が 1-* であるため、属している情報にアクセスできますが、同じ方法で hasMany 情報にアクセスすることはできません。以下は私が使用しているコードです:

JSON.registerObjectMarshaller( Event){
        Event event -> return [
            id : event.id,
            schoolName : event?.school?.name,
            teachers : [
                teacherName: event?.TEACHERS.toString(),
                ],
            ]
    }

この行teacherName: event?.TEACHERS.toString(),は、機能する TEACHERS リストにアクセスできることを証明するためにあります。リストを反復できる必要があると思いますが、このコンテキストでそれを行う方法がわかりません。

ありがとう

4

1 に答える 1

3

ここにいくつかのオプションがあります:

1) Teacher のマーシャラーをセットアップします。次に、イベントのマーシャラーで、次のことを簡単に実行できます。

teachers : event?.teachers

2) Teacher のマーシャラーを設定したくない場合は、次のようにします。

JSON.registerObjectMarshaller(Event){ Event event -> 
    [ 
        id : event.id,
        schoolName : event?.school?.name,
        teachers : event.teachers.collect{ Teacher teacher ->
            [id: teacher.id, name: teacher.name]
        }
    ]
}
于 2013-08-09T11:19:28.730 に答える