【发布时间】:2017-09-07 12:31:40
【问题描述】:
我目前使用
为每个资源定义自定义 API 响应JSON.registerObjectMarshaller(Something) { ... }
在 BootStrap init 闭包内。
使用render something as JSON 给了我想要的输出。域类的一些属性根据编组器设置被过滤掉。
但是,当我使用 respond 方法时,它不使用 marshaller 格式,而是显示域类的所有属性。
有没有办法让 respond 使用编组器设置的所需输出?
Grails 版本:3.2.8
更新:
使用 rest-api 配置文件时似乎出现了问题。
【问题讨论】:
-
我认为做类似事情的新“grails 方式”是使用他们的 Json 视图。我在几个不同的 grails 项目中使用自定义对象编组器,我让它们都使用渲染函数而不是响应函数。你有理由使用响应与渲染吗?
-
@zypherman 如果我使用响应,代码会更少。并且因为其他项目中的一些现有代码使用了response。我想知道是否可以以相同的方式使用 Json 视图,包括用于其中包含嵌套资源的资源?
-
看起来你可以做一个深度渲染来渲染嵌套资源。 JSON 视图文档不是非常详细,但我相信您能够指定您希望输出的外观与您在对象封送器闭包中的执行方式非常相似。
标签: json grails controller