Мне нужно создать ответ 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.

Какова структура класса BusinessProcess? Вы можете сгенерировать JSON любой структуры, которая вам нравится, если у вас есть правильный маршаллер - см. Эту ссылку, чтобы узнать больше о маршаллерах объектов -
http://docs.grails.org/3.0.17/guide/webServices.html#objectMarshallers