diff --git a/src/main/java/org/json/JSONArray.java b/src/main/java/org/json/JSONArray.java index 338177c59..2a8a1d209 100644 --- a/src/main/java/org/json/JSONArray.java +++ b/src/main/java/org/json/JSONArray.java @@ -567,6 +567,14 @@ public int length() { return this.myArrayList.size(); } + /** + * Removes all of the elements from this JSONArray. + * The JSONArray will be empty after this call returns. + */ + public void clear() { + this.myArrayList.clear(); + } + /** * Get the optional object value associated with an index. * diff --git a/src/main/java/org/json/JSONObject.java b/src/main/java/org/json/JSONObject.java index b838b8ef3..b60344bad 100644 --- a/src/main/java/org/json/JSONObject.java +++ b/src/main/java/org/json/JSONObject.java @@ -973,6 +973,14 @@ public int length() { return this.map.size(); } + /** + * Removes all of the elements from this JSONObject. + * The JSONObject will be empty after this call returns. + */ + public void clear() { + this.map.clear(); + } + /** * Check if JSONObject is empty. * diff --git a/src/test/java/org/json/junit/JSONArrayTest.java b/src/test/java/org/json/junit/JSONArrayTest.java index 7673157ed..1c042516f 100644 --- a/src/test/java/org/json/junit/JSONArrayTest.java +++ b/src/test/java/org/json/junit/JSONArrayTest.java @@ -1254,4 +1254,19 @@ public void testJSONArrayPutAll() { assertEquals("index " + i + " are equal", a1.get(i), a2.get(i)); } } + + /** + * Tests if calling JSONArray clear() method actually makes the JSONArray empty + */ + @Test(expected = JSONException.class) + public void jsonArrayClearMethodTest() { + //Adds random stuff to the JSONArray + JSONArray jsonArray = new JSONArray(); + jsonArray.put(123); + jsonArray.put("456"); + jsonArray.put(new JSONArray()); + jsonArray.clear(); //Clears the JSONArray + assertTrue("expected jsonArray.length() == 0", jsonArray.length() == 0); //Check if its length is 0 + jsonArray.getInt(0); //Should throws org.json.JSONException: JSONArray[0] not found + } } diff --git a/src/test/java/org/json/junit/JSONObjectTest.java b/src/test/java/org/json/junit/JSONObjectTest.java index 374bc10ea..2e296f071 100644 --- a/src/test/java/org/json/junit/JSONObjectTest.java +++ b/src/test/java/org/json/junit/JSONObjectTest.java @@ -3215,4 +3215,19 @@ public void testIssue548ObjectWithEmptyJsonArray() { assertNotNull("'empty_json_array' should be an array", jsonObject.getJSONArray("empty_json_array")); assertEquals("'empty_json_array' should have a length of 0", 0, jsonObject.getJSONArray("empty_json_array").length()); } + + /** + * Tests if calling JSONObject clear() method actually makes the JSONObject empty + */ + @Test(expected = JSONException.class) + public void jsonObjectClearMethodTest() { + //Adds random stuff to the JSONObject + JSONObject jsonObject = new JSONObject(); + jsonObject.put("key1", 123); + jsonObject.put("key2", "456"); + jsonObject.put("key3", new JSONObject()); + jsonObject.clear(); //Clears the JSONObject + assertTrue("expected jsonObject.length() == 0", jsonObject.length() == 0); //Check if its length is 0 + jsonObject.getInt("key1"); //Should throws org.json.JSONException: JSONObject["asd"] not found + } }