Поле Grails JSON отсутствует

Мне нужно создать ответ 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 в новый объект Java BusinessProcess. Следующие поля я добавляю вручную. Пока все работает, кроме последнего поля, которое не отображается в ответе (отладчик утверждает, что вновь созданный объект содержит поле и его переданное значение). Вот мой метод 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.

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
0
95
1

Ответы 1

Какова структура класса BusinessProcess? Вы можете сгенерировать JSON любой структуры, которая вам нравится, если у вас есть правильный маршаллер - см. Эту ссылку, чтобы узнать больше о маршаллерах объектов -

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

Другие вопросы по теме