OpenAPITools / OpenAPITools/jackson-databind-nullable
Confusion with setSerializationInclusion(Include.NON_NULL)
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 153
- Forks
- 47
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 6
Description
I'm confused with setup in "Usage section":
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
mapper.registerModule(new JsonNullableModule());
Please take a look on the following snippet ( val=null is passed in JSON and in Map):
record A (JsonNullable<BigDecimal> val) {}
ObjectMapper objectMapper = new ObjectMapper().registerModule(new JsonNullableModule());
A a1 = objectMapper.readValue("{ \"val\" : null }", A.class);
System.out.println(a1);
HashMap hashMap = new HashMap();
hashMap.put("val", null);
A a2 = objectMapper.convertValue(hashMap, A.class);
System.out.println(a2);
Output is consistent
A[val=JsonNullable[null]]
A[val=JsonNullable[null]]
But with setup
ObjectMapper objectMapper = new ObjectMapper().registerModule(new JsonNullableModule())
.setSerializationInclusion(JsonInclude.Include.NON_NULL);
Output is not consistent
A[val=JsonNullable[null]]
A[val=JsonNullable.undefined]
Well, time for questions:
- I do not understand why you propose in "Usage" section setup
.setSerializationInclusion(JsonInclude.Include.NON_NULL). It looks useless. - I do not understand how serialization setup may affect deserialization (
objectMapper.convertValueis deserialization)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Usage section and reproduce both ObjectMapper configurations using the record, JSON input, and HashMap conversion shown in the issue. Trace how the NON_NULL setting affects the documented setup, then update the Usage section so the purpose of the setting and its effect on convertValue are clear, with the observed behavior explained.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100