Выберите глубокую или поверхностную сериализацию JSON в Grails - PullRequest
4 голосов
/ 04 марта 2012

Есть ли способ легко указать, следует ли преобразовывать объект в JSON глубоким или поверхностным способом?Я знаю, что вы можете настроить утилиту grails.converters.JSON в файле Config.groovy, указав что-то вроде следующего:

grails.converters.json.default.deep = true

, но когда я конвертирую определенные объекты, я не хочу глубоко конвертировать.

Я также видел, что кто-то рекомендовал использовать JSON.use ("deep"), но я получаю следующую ошибку:

Error 2012-03-04 00:39:13,673 ["http-bio-8080"-exec-1] ERROR errors.GrailsExceptionResolver  - IllegalAccessException occurred when processing request: [GET] /Quaffic/home/json
Class org.codehaus.groovy.grails.web.converters.marshaller.json.GenericJavaBeanMarshaller can not access a member of class org.joda.time.tz.DateTimeZoneBuilder$PrecalculatedZone with modifiers "public". Stacktrace follows:
Message: Class org.codehaus.groovy.grails.web.converters.marshaller.json.GenericJavaBeanMarshaller can not access a member of class org.joda.time.tz.DateTimeZoneBuilder$PrecalculatedZone with modifiers "public"
   Line | Method
->> 198 | value          in grails.converters.JSON

Похоже, это может быть ошибка joda.time,но этого не происходит, когда я просто использую простую технику Config.groovy.Вроде путаницы ...

Любая помощь будет отличной!

1 Ответ

6 голосов
/ 04 мая 2012

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

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