我有一个域类树,我想通过深度转换器将其转换为 JSON:
import grails.converters.deep.JSON
deepObject as JSON
在树的某个地方,我在某些字段中有 Double.NaN 值,并且 JSON 解析器抛出异常:
org.apache.commons.lang.UnhandledException: org.codehaus.groovy.grails.web.converters.exceptions.ConverterException: org.codehaus.groovy.grails.web.json.JSONException: JSON does not allow non-finite numbers
我该如何处理这种情况?可能会返回一个字符串 ('NaN')。
我尝试重新调整JSONObject.testValidity(Object o)方法,但这是一个 pojo,所以它不起作用。
编辑
我还尝试在 Bootstrap.groovy 中注册一个编组器:
JSON.registerObjectMarshaller(Double) {
return it == Double.NaN ? 'NaN' : it.toString()
}
但这也行不通。