【发布时间】:2018-04-11 18:01:02
【问题描述】:
我需要在我的应用程序中创建一个 JSON 响应,其中将包含对象的等效 + 附加字段。 show() 方法如下所示:
def show(Long id) {
verifyUserLoggedIn()
ScBusinessProcess scBusinessProcess = ScBusinessProcess.get(id)
BusinessProcess businessProcess = BusinessProcessTranslator.toREST(scBusinessProcess)
businessProcess.questions = getQuestions(scBusinessProcess)
businessProcess.rate = getUserRate();
businessProcess.totalSteps = calculateTotalSteps(scBusinessProcess);
businessProcess.usersCurrentStep = 1;
respond businessProcess
}
toREST() 方法将 ScBusinessProcess 域类对象复制到一个新的 BusinessProcess Java 对象中。接下来是我手动添加的字段。到目前为止,除了没有在响应中显示的最后一个字段(调试器声称新创建的对象包含该字段及其传递的值)之外,一切都在工作。这是我的 toREST 方法:
public static BusinessProcess toREST(ScBusinessProcess scBusinessProcess) {
if (scBusinessProcess == null) return null;
return new BusinessProcess(
scBusinessProcess.id(),
scBusinessProcess.getName(),
null,
scBusinessProcess.getDescription(),
scBusinessProcess.getPromoted(),
scBusinessProcess.getLikedCount(),
scBusinessProcess.getDislikedCount(),
0,
0,
0
);
}
下面是返回的 JSON:
class "rest.BusinessProcess"
description "Business Process Description"
dislikes 0
id 1
likes 1
name "BusinessProcessOne"
promoted false
questions []
rate 1
totalSteps 0
usersCurrentStep 丢失。可能是什么问题?如果我需要添加更多代码,请说。此外,构建应用程序的 Grails 版本是 3.1.9。
【问题讨论】: