diff --git a/grails-plugin-converters/src/test/groovy/grails/converters/ParsingNullJsonValuesSpec.groovy b/grails-plugin-converters/src/test/groovy/grails/converters/ParsingNullJsonValuesSpec.groovy new file mode 100644 index 00000000000..21e4cfc80da --- /dev/null +++ b/grails-plugin-converters/src/test/groovy/grails/converters/ParsingNullJsonValuesSpec.groovy @@ -0,0 +1,12 @@ +package grails.converters + +import spock.lang.Specification + +class ParsingNullJsonValuesSpec extends Specification { + + def "test parsing null value"() { + expect: + JSON.parse("{'myList':null}").myList == null + JSON.parse("{'myList':null}").get('myList') == null + } +} diff --git a/grails-web-common/src/main/groovy/org/codehaus/groovy/grails/web/json/JSONObject.java b/grails-web-common/src/main/groovy/org/codehaus/groovy/grails/web/json/JSONObject.java index d60bc096eaf..e49f664ece0 100644 --- a/grails-web-common/src/main/groovy/org/codehaus/groovy/grails/web/json/JSONObject.java +++ b/grails-web-common/src/main/groovy/org/codehaus/groovy/grails/web/json/JSONObject.java @@ -331,7 +331,7 @@ public Object get(String key) throws JSONException { throw new JSONException("JSONObject[" + quote(key) + "] not found."); } - return o; + return o instanceof Null ? null : o; } @@ -1246,7 +1246,8 @@ public boolean containsValue(Object o) { } public Object get(Object o) { - return myHashMap.get(o); + Object value = myHashMap.get(o); + return value instanceof Null ? null : value; } public Object put(Object o, Object o1) {