Grails JSON字段丢失

时间:2018-04-10 13:26:24

标签: json rest grails

我需要在我的应用程序中创建一个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。

1 个答案:

答案 0 :(得分:0)

BusinessProcess类的结构是什么?如果你有合适的编组员,你可以生成你喜欢的任何结构的JSON - 请参阅此链接以了解有关对象编组的更多信息 -

http://docs.grails.org/3.0.17/guide/webServices.html#objectMarshallers