Я следующие Доменные Классы:вложенными Названный конфигурации для JSON Marshallers с Grails 2.4.4
class Domain1{
String prop1
Domain2 prop2
}
class Domain2{
String prop3
}
и 2 Названы ИАС Конфигурации для каждого
JSON.createNamedConfig('PUBLIC_API'){
it.registerObjectMarshaller(Domain1){Domain1 domain1->
return ['key1': domain1.prop1, 'key2': domain1.prop2]
}
}
JSON.createNamedConfig('PUBLIC_API'){
it.registerObjectMarshaller(Domain2){Domain2 domain2->
return ['key1': domain2.prop3]
}
}
Когда я пытаюсь использовать это с именем конфигурации, маршаллинг выполняется только на объекте родительского домена, маршаллер вложенного/дочернего класса даже не вызван.
Таким образом, используя этот конфиг
JSON.use('PUBLIC_API'){
render domain1 as JSON
}
результаты в
{
"key1": "value1",
"key2": {
"id": 1,
"class" : "Domain2",
"prop3" : "value2"
}
}
Я не мог найти что-либо в отношении такого использования названных маршалера конфиги в grails documentation
Кто-нибудь работал с такой усекас? Или если это даже поддерживается?
Вложенные маршаллеры отлично работают без именных конфигураций, но это не то, что я использую. Я должен зарегистрировать как минимум 2 разных формата для домена, и я думал, что имя config будет облегчением. – v1p
Я закончил тем, что добавил 3 различных конфигурации ... неименованный конфиг и 2 named config для дочернего домена. Это не касается проблемы, а просто обходное решение. – v1p