Sco*_*ott 14 null grails groovy json
我正在尝试使用grails.converters.JSON库在Grails中解析一些JSON.我有一个字段,其中包含字符串或空值.当我解析JSON并获取字段时,空值将作为JSONObject.NULL类型返回.检查!= null时这不好,因为JSONObject.NULL被评估为非null(不适合空检查)
def obj = JSON.parse('{"date1":null,"date2":"2011-06-26T05:00:00Z"}')
def date1 = obj.date1
if (date1)
parse(date1) // parse error occurs here because date1 evaluates true in the if because it is JSONObject.NULL
Run Code Online (Sandbox Code Playgroud)
有一种简单的方法可以让解析器解析一个真正的空值,这样我就不必检查对象是否是JSONObject.NULL.
我在这里尝试使用.toString(),但最终返回字符串值'null'而不是JSONObject.NULL值的实际null.
dee*_*try 16
您可能会发现这更有用和自然
JSONObject.NULL.equals(jsonObj.get("key_name"))
Run Code Online (Sandbox Code Playgroud)
Chr*_*ris 13
看看:http://grails.1312388.n4.nabble.com/The-groovy-truth-of-JSONObject-Null-td3661040.html
Ian Roberts提到了一个很好的技巧,可以进行空检查:
JSONObject.NULL.metaClass.asBoolean = {-> false}
Run Code Online (Sandbox Code Playgroud)