有没有办法轻松指定是以深层还是浅层方式将对象转换为JSON?我知道你可以通过指定类似下面的一些配置中的Config.groovy文件grails.converters.JSON实用程序:在Grails中选择深层或浅层JSON序列化
grails.converters.json.default.deep = true
,但是当我将某些对象,我不想深转换。
我也看到有人使用推荐的JSON.use(“深”),但我得到了以下错误:
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技术时就会发生。有点困惑...
任何帮助将是伟大的!
我得到了同样的问题。似乎joda-time插件的joda-time转换器在JSON.use(“deep”)之后被调用。他们是如果你注册他们手动虽然。 JSON.use(“深”)JodaConverters.registerJsonAndXmlMarshallers()如果我想出更好的东西,我会告诉你。 – gogstad 2012-08-04 13:34:09