Преобразователи Grails JSON и переходные свойства - PullRequest
5 голосов
/ 19 июля 2011

Используя Grail 1.3.7, я обнаружил, что JSON-конвертер игнорирует переходные свойства объектов Domain.Вопрос: существует ли элегантный способ обойти это препятствие.

Дополнительный вопрос: в чем причина исключения вычисленных полей (переходных элементов) из отправки в ответ ????

Ответы [ 5 ]

6 голосов
/ 18 февраля 2013

у меня работает эта строка

def jsonobj=domobj.properties as JSON
5 голосов
/ 19 июля 2011

Переходный процесс сделан именно для этого: Переменные могут быть помечены как переходные, чтобы указать, что они не являются частью постоянного состояния объекта

И JSON - это сериализованное (= постоянное) состояние объекта

Итак, если вам нужно его сериализовать - вам нужно создать новый класс, только для сериализации json, который будет иметь все поля, необходимые для сериализации.

4 голосов
/ 19 июля 2011

один из способов - создать ответ json вручную, например,

["prop1" : obj.prop1, "prop2" : obj.prop2, ...] as JSON
0 голосов
/ 02 ноября 2015

Вы можете использовать плагин "marshallers" и определить свое временное свойство как виртуальное:

    static marshalling = {
      virtual {
        yourPropery { value, json -> json.value(value.yourPropery) }
      }
    }
0 голосов
/ 19 июля 2011

Если вам нужен детальный контроль над полями, которые включены / исключены в JSON, я лучше использую JSONBuilder лучше, чем конвертер.Вот пример того, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...