1

深いコンバーターを介して 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()
}

しかし、それもうまくいきません。

4

1 に答える 1