From 11331cf0559aec446a9c4341c2e128f3ff8393e8 Mon Sep 17 00:00:00 2001 From: dvohra09 Date: Sat, 16 Aug 2025 16:38:58 -0400 Subject: [PATCH 1/3] Create SetterDefaultValueAsEmptyString.java --- .../SetterDefaultValueAsEmptyString.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 jackson-modules/jackson-core/src/main/java/com/baeldung/jackson/defaultvalues/SetterDefaultValueAsEmptyString.java diff --git a/jackson-modules/jackson-core/src/main/java/com/baeldung/jackson/defaultvalues/SetterDefaultValueAsEmptyString.java b/jackson-modules/jackson-core/src/main/java/com/baeldung/jackson/defaultvalues/SetterDefaultValueAsEmptyString.java new file mode 100644 index 000000000000..9c8083ba7592 --- /dev/null +++ b/jackson-modules/jackson-core/src/main/java/com/baeldung/jackson/defaultvalues/SetterDefaultValueAsEmptyString.java @@ -0,0 +1,27 @@ +package com.baeldung.jackson.defaultvalues; + +public class SetterDefaultValueAsEmptyString { + + private String required; + private String optional = "valueIfMissingEntirely"; + + public void setOptional(String optional){ + if(optional == null){ + this.optional = ""; + } + } + + public String getRequired() { + return required; + } + + public String getOptional() { + return optional; + } + + @Override + public String toString() { + return "NonAnnotatedDefaultValue{" + "required='" + required + '\'' + ", optional='" + optional + '\'' + '}'; + } + +} From 3310263491381c2db79bf49fde5bab1807ffd5fb Mon Sep 17 00:00:00 2001 From: dvohra09 Date: Sat, 16 Aug 2025 16:41:47 -0400 Subject: [PATCH 2/3] Update DefaultValuesUnitTest.java --- .../jackson/defaultvalues/DefaultValuesUnitTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/defaultvalues/DefaultValuesUnitTest.java b/jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/defaultvalues/DefaultValuesUnitTest.java index a7d41be76461..3429720f6679 100644 --- a/jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/defaultvalues/DefaultValuesUnitTest.java +++ b/jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/defaultvalues/DefaultValuesUnitTest.java @@ -25,6 +25,15 @@ public void givenAClassWithASetter_whenReadingJsonWithNullOptionalValue_thenExpe assert(createdObject.getOptional()).equals("valueIfNull"); } + @Test + public void givenAClassWithASetter_whenReadingJsonWithNullOptionalValue_thenEmptyStringInResult() throws JsonProcessingException { + String nullOptionalField = "{\"required\": \"value\", \"optional\": null}"; + ObjectMapper objectMapper = new ObjectMapper(); + SetterDefaultValue createdObject = objectMapper.readValue(nullOptionalField, SetterDefaultValueAsEmptyString.class); + assert(createdObject.getRequired()).equals("value"); + assert(createdObject.getOptional()).equals(""); + } + @Test public void givenAClassWithAJsonSetterNullsSkip_whenReadingJsonWithNullOptionalValue_thenExpectDefaultValueInResult() throws JsonProcessingException { String nullOptionalField = "{\"required\": \"value\", \"optional\": null}"; From d025074b3657add8fd49be108892e6a458abe11d Mon Sep 17 00:00:00 2001 From: dvohra16 Date: Sat, 16 Aug 2025 17:15:39 -0400 Subject: [PATCH 3/3] Update DefaultValuesUnitTest.java --- .../baeldung/jackson/defaultvalues/DefaultValuesUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/defaultvalues/DefaultValuesUnitTest.java b/jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/defaultvalues/DefaultValuesUnitTest.java index 3429720f6679..5d1129dc6fa3 100644 --- a/jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/defaultvalues/DefaultValuesUnitTest.java +++ b/jackson-modules/jackson-core/src/test/java/com/baeldung/jackson/defaultvalues/DefaultValuesUnitTest.java @@ -29,7 +29,7 @@ public void givenAClassWithASetter_whenReadingJsonWithNullOptionalValue_thenExpe public void givenAClassWithASetter_whenReadingJsonWithNullOptionalValue_thenEmptyStringInResult() throws JsonProcessingException { String nullOptionalField = "{\"required\": \"value\", \"optional\": null}"; ObjectMapper objectMapper = new ObjectMapper(); - SetterDefaultValue createdObject = objectMapper.readValue(nullOptionalField, SetterDefaultValueAsEmptyString.class); + SetterDefaultValueAsEmptyString createdObject = objectMapper.readValue(nullOptionalField, SetterDefaultValueAsEmptyString.class); assert(createdObject.getRequired()).equals("value"); assert(createdObject.getOptional()).equals(""); }