From 57ad94ef5e4641f243069020ddd8e0dee776247c Mon Sep 17 00:00:00 2001 From: Stranck Date: Fri, 4 Dec 2020 00:49:21 +0100 Subject: [PATCH 1/4] Added clear() methods to JSONObject and JSONArray --- src/main/java/org/json/JSONArray.java | 8 ++++++++ src/main/java/org/json/JSONObject.java | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/src/main/java/org/json/JSONArray.java b/src/main/java/org/json/JSONArray.java index 338177c59..5c34662a2 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() { + return this.map.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..150d84cd5 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() { + return this.map.clear(); + } + /** * Check if JSONObject is empty. * From d85eea53bbb1d7ae9cdc1d8c166fa9e58dcf1e74 Mon Sep 17 00:00:00 2001 From: Stranck Date: Fri, 4 Dec 2020 01:07:29 +0100 Subject: [PATCH 2/4] Update JSONArray.java --- src/main/java/org/json/JSONArray.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/json/JSONArray.java b/src/main/java/org/json/JSONArray.java index 5c34662a2..9dd391ca1 100644 --- a/src/main/java/org/json/JSONArray.java +++ b/src/main/java/org/json/JSONArray.java @@ -572,7 +572,7 @@ public int length() { * The JSONArray will be empty after this call returns. */ public void clear() { - return this.map.clear(); + return this.myArrayList.clear(); } /** From c7130d577a627acb0c0bcb511f65317852c6502f Mon Sep 17 00:00:00 2001 From: Stranck Date: Fri, 4 Dec 2020 01:09:18 +0100 Subject: [PATCH 3/4] Oops --- src/main/java/org/json/JSONArray.java | 2 +- src/main/java/org/json/JSONObject.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/json/JSONArray.java b/src/main/java/org/json/JSONArray.java index 9dd391ca1..2a8a1d209 100644 --- a/src/main/java/org/json/JSONArray.java +++ b/src/main/java/org/json/JSONArray.java @@ -572,7 +572,7 @@ public int length() { * The JSONArray will be empty after this call returns. */ public void clear() { - return this.myArrayList.clear(); + this.myArrayList.clear(); } /** diff --git a/src/main/java/org/json/JSONObject.java b/src/main/java/org/json/JSONObject.java index 150d84cd5..b60344bad 100644 --- a/src/main/java/org/json/JSONObject.java +++ b/src/main/java/org/json/JSONObject.java @@ -978,7 +978,7 @@ public int length() { * The JSONObject will be empty after this call returns. */ public void clear() { - return this.map.clear(); + this.map.clear(); } /** From efad1d73a7794e4db925e47001b9c7a45ce18746 Mon Sep 17 00:00:00 2001 From: Stranck Date: Fri, 4 Dec 2020 04:09:19 +0100 Subject: [PATCH 4/4] Added UnitTests (I hope they works :c) --- src/test/java/org/json/junit/JSONArrayTest.java | 15 +++++++++++++++ src/test/java/org/json/junit/JSONObjectTest.java | 15 +++++++++++++++ 2 files changed, 30 insertions(+) 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 + } }