From 2c1544db4d0097fb9ed8b2e1f23b7b580d386e6d Mon Sep 17 00:00:00 2001 From: Mo Helmy <135069400+BenHelmyBen@users.noreply.github.com> Date: Tue, 27 Jun 2023 03:26:45 +0300 Subject: [PATCH] Removing JSON elements with Jackson [BAEL-6511] (#14291) * Removing JSON elements with Jackson [BAEL-6511] This commit adds a test class for removing JSON elements using the Jackson library. * Removing JSON elements with Jackson [BAEL-6511] This PR adds a test class for removing JSON elements using the Jackson library. --- .../jsonnode/RemoveJsonElementsUnitTest.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/jsonnode/RemoveJsonElementsUnitTest.java diff --git a/jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/jsonnode/RemoveJsonElementsUnitTest.java b/jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/jsonnode/RemoveJsonElementsUnitTest.java new file mode 100644 index 0000000000..73c0a1f925 --- /dev/null +++ b/jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/jsonnode/RemoveJsonElementsUnitTest.java @@ -0,0 +1,48 @@ +package com.baeldung.jackson.jsonnode; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.JsonNode; +import org.junit.jupiter.api.Assertions; +import java.util.Iterator; +import org.junit.Test; + +public class RemoveJsonElementsUnitTest { + @Test + public void given_JsonData_whenUsingJackson_thenRemoveElementByKey() throws JsonProcessingException { + String json = "{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}"; + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode jsonNode = objectMapper.readTree(json); + ObjectNode object = (ObjectNode) jsonNode; + object.remove("age"); + String updatedJson = objectMapper.writeValueAsString(object); + Assertions.assertEquals("{\"name\":\"John\",\"city\":\"New York\"}", updatedJson); + } + @Test + public void given_JsonData_whenUsingJackson_thenRemoveElementsByCondition() throws JsonProcessingException { + String json = "{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}"; + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode jsonNode = objectMapper.readTree(json); + Iterator elements = jsonNode.elements(); + while (elements.hasNext()) { + JsonNode element = elements.next(); + if (element.isNumber() && element.asInt() == 30) { + elements.remove(); + } + } + String updatedJson = objectMapper.writeValueAsString(jsonNode); + Assertions.assertEquals("{\"name\":\"John\",\"city\":\"New York\"}", updatedJson); + } + + @Test + public void given_JsonData_whenUsingJackson_thenRemoveElementFromNestedStructure() throws JsonProcessingException { + String json = "{\"name\": \"John\", \"details\": {\"age\": 30, \"city\": \"New York\"}}"; + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode jsonNode = objectMapper.readTree(json); + JsonNode detailsNode = jsonNode.path("details"); + ((ObjectNode) detailsNode).remove("age"); + String updatedJson = objectMapper.writeValueAsString(jsonNode); + Assertions.assertEquals("{\"name\":\"John\",\"details\":{\"city\":\"New York\"}}", updatedJson); + } +}