mirror of
https://github.com/stleary/JSON-java.git
synced 2026-01-24 00:03:17 -05:00
Merge branch 'master' of https://github.com/marilynel/JSON-java
This commit is contained in:
@@ -228,6 +228,19 @@ public class JSONArrayTest {
|
||||
Util.checkJSONArrayMaps(jaRaw);
|
||||
Util.checkJSONArrayMaps(jaInt);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void jsonArrayByListWithNestedNullValue() {
|
||||
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
|
||||
Map<String, Object> sub = new HashMap<String, Object>();
|
||||
sub.put("nullKey", null);
|
||||
list.add(sub);
|
||||
JSONParserConfiguration parserConfiguration = new JSONParserConfiguration().withUseNativeNulls(true);
|
||||
JSONArray jsonArray = new JSONArray(list, parserConfiguration);
|
||||
JSONObject subObject = jsonArray.getJSONObject(0);
|
||||
assertTrue(subObject.has("nullKey"));
|
||||
assertEquals(JSONObject.NULL, subObject.get("nullKey"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests consecutive calls to putAll with array and collection.
|
||||
|
||||
@@ -616,6 +616,46 @@ public class JSONObjectTest {
|
||||
assertTrue("expected \"doubleKey\":-23.45e67", Double.valueOf("-23.45e67").equals(jsonObject.query("/doubleKey")));
|
||||
Util.checkJSONObjectMaps(jsonObject);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void jsonObjectByMapWithNullValueAndParserConfiguration() {
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
map.put("nullKey", null);
|
||||
|
||||
// by default, null values are ignored
|
||||
JSONObject obj1 = new JSONObject(map);
|
||||
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().withUseNativeNulls(true);
|
||||
JSONObject obj2 = new JSONObject(map, parserConfiguration);
|
||||
assertFalse("expected null value to accepted when configured", obj2.isEmpty());
|
||||
assertTrue(obj2.has("nullKey"));
|
||||
assertEquals(JSONObject.NULL, obj2.get("nullKey"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void jsonObjectByMapWithNestedNullValueAndParserConfiguration() {
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
Map<String, Object> nestedMap = new HashMap<String, Object>();
|
||||
nestedMap.put("nullKey", null);
|
||||
map.put("nestedMap", nestedMap);
|
||||
List<Map<String, Object>> nestedList = new ArrayList<Map<String,Object>>();
|
||||
nestedList.add(nestedMap);
|
||||
map.put("nestedList", nestedList);
|
||||
|
||||
JSONParserConfiguration parserConfiguration = new JSONParserConfiguration().withUseNativeNulls(true);
|
||||
JSONObject jsonObject = new JSONObject(map, parserConfiguration);
|
||||
|
||||
JSONObject nestedObject = jsonObject.getJSONObject("nestedMap");
|
||||
assertTrue(nestedObject.has("nullKey"));
|
||||
assertEquals(JSONObject.NULL, nestedObject.get("nullKey"));
|
||||
|
||||
JSONArray nestedArray = jsonObject.getJSONArray("nestedList");
|
||||
assertEquals(1, nestedArray.length());
|
||||
assertTrue(nestedArray.getJSONObject(0).has("nullKey"));
|
||||
assertEquals(JSONObject.NULL, nestedArray.getJSONObject(0).get("nullKey"));
|
||||
}
|
||||
|
||||
/**
|
||||
* JSONObject built from a bean. In this case all but one of the
|
||||
|
||||
@@ -53,6 +53,14 @@ public class JSONParserConfigurationTest {
|
||||
|
||||
assertTrue(jsonParserConfiguration.isKeepStrings());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void useNativeNullsIsCloned() {
|
||||
JSONParserConfiguration jsonParserConfiguration = new JSONParserConfiguration()
|
||||
.withUseNativeNulls(true)
|
||||
.withStrictMode(true);
|
||||
assertTrue(jsonParserConfiguration.isUseNativeNulls());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void verifyDuplicateKeyThenMaxDepth() {
|
||||
|
||||
Reference in New Issue
Block a user