diff --git a/src/main/java/org/json/JSONObject.java b/src/main/java/org/json/JSONObject.java index 73835d4..a1664f7 100644 --- a/src/main/java/org/json/JSONObject.java +++ b/src/main/java/org/json/JSONObject.java @@ -332,7 +332,7 @@ public class JSONObject { throw new NullPointerException("Null key."); } final Object value = e.getValue(); - if (value != null || jsonParserConfiguration.isJavaNullAsJsonNull()) { + if (value != null || jsonParserConfiguration.isUseNativeNulls()) { testValidity(value); this.map.put(String.valueOf(e.getKey()), wrap(value, recursionDepth + 1, jsonParserConfiguration)); } diff --git a/src/main/java/org/json/JSONParserConfiguration.java b/src/main/java/org/json/JSONParserConfiguration.java index 58d080f..550eedf 100644 --- a/src/main/java/org/json/JSONParserConfiguration.java +++ b/src/main/java/org/json/JSONParserConfiguration.java @@ -10,9 +10,9 @@ public class JSONParserConfiguration extends ParserConfiguration { private boolean overwriteDuplicateKey; /** - * Used to indicate whether ignore null values when converting java maps to JSONObject or not. + * Used to indicate whether to convert java null values to JSONObject.NULL or ignoring the entry when converting java maps. */ - private boolean javaNullAsJsonNull; + private boolean useNativeNulls; /** * Configuration with the default values. @@ -74,16 +74,16 @@ public class JSONParserConfiguration extends ParserConfiguration { } /** - * Controls the parser's behavior when meeting duplicate keys. - * If set to false, the parser will throw a JSONException when meeting a duplicate key. - * Or the duplicate key's value will be overwritten. + * Controls the parser's behavior when meeting Java null values while converting maps. + * If set to true, the parser will put a JSONObject.NULL into the resulting JSONObject. + * Or the map entry will be ignored. * - * @param javaNullAsJsonNull define, if the parser should ignore null values in Java maps + * @param useNativeNulls defines if the parser should convert null values in Java maps * @return The existing configuration will not be modified. A new configuration is returned. */ - public JSONParserConfiguration withJavaNullAsJsonNull(final boolean javaNullAsJsonNull) { + public JSONParserConfiguration withUseNativeNulls(final boolean useNativeNulls) { JSONParserConfiguration clone = this.clone(); - clone.javaNullAsJsonNull = javaNullAsJsonNull; + clone.useNativeNulls = useNativeNulls; return clone; } @@ -128,13 +128,14 @@ public class JSONParserConfiguration extends ParserConfiguration { } /** - * The parser's behavior when meeting a null value in a java map, controls whether the parser should ignore - * that map entry or write a JSON entry with a null value. + * The parser's behavior when meeting a null value in a java map, controls whether the parser should + * write a JSON entry with a null value (isUseNativeNulls() == true) + * or ignore that map entry (isUseNativeNulls() == false). * - * @return The javaNullAsJsonNull configuration value. + * @return The useNativeNulls configuration value. */ - public boolean isJavaNullAsJsonNull() { - return this.javaNullAsJsonNull; + public boolean isUseNativeNulls() { + return this.useNativeNulls; } diff --git a/src/test/java/org/json/junit/JSONArrayTest.java b/src/test/java/org/json/junit/JSONArrayTest.java index 12ef3b9..4296203 100644 --- a/src/test/java/org/json/junit/JSONArrayTest.java +++ b/src/test/java/org/json/junit/JSONArrayTest.java @@ -235,7 +235,7 @@ public class JSONArrayTest { Map sub = new HashMap(); sub.put("nullKey", null); list.add(sub); - JSONParserConfiguration parserConfiguration = new JSONParserConfiguration().withJavaNullAsJsonNull(true); + JSONParserConfiguration parserConfiguration = new JSONParserConfiguration().withUseNativeNulls(true); JSONArray jsonArray = new JSONArray(list, parserConfiguration); JSONObject subObject = jsonArray.getJSONObject(0); assertTrue(subObject.has("nullKey")); diff --git a/src/test/java/org/json/junit/JSONObjectTest.java b/src/test/java/org/json/junit/JSONObjectTest.java index 5762ea7..9d9ef8f 100644 --- a/src/test/java/org/json/junit/JSONObjectTest.java +++ b/src/test/java/org/json/junit/JSONObjectTest.java @@ -627,7 +627,7 @@ public class JSONObjectTest { assertTrue("expected null value to be ignored by default", obj1.isEmpty()); // if configured, null values are written as such into the JSONObject. - JSONParserConfiguration parserConfiguration = new JSONParserConfiguration().withJavaNullAsJsonNull(true); + JSONParserConfiguration parserConfiguration = new JSONParserConfiguration().withUseNativeNulls(true); JSONObject obj2 = new JSONObject(map, parserConfiguration); assertFalse("expected null value to accepted when configured", obj2.isEmpty()); assertTrue(obj2.has("nullKey")); @@ -644,7 +644,7 @@ public class JSONObjectTest { nestedList.add(nestedMap); map.put("nestedList", nestedList); - JSONParserConfiguration parserConfiguration = new JSONParserConfiguration().withJavaNullAsJsonNull(true); + JSONParserConfiguration parserConfiguration = new JSONParserConfiguration().withUseNativeNulls(true); JSONObject jsonObject = new JSONObject(map, parserConfiguration); JSONObject nestedObject = jsonObject.getJSONObject("nestedMap");