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.
This commit is contained in:
parent
c67171f37d
commit
5e3bf803f4
|
@ -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<JsonNode> 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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue