FasterXML / FasterXML/jackson-module-kotlin
Remove `NullToEmpty` options or change backend
- Dominant language
- Kotlin
- Stars
- 1.2k
- Forks
- 187
- Avg merge
- 9h 48m
- Merged PRs (30d)
- 16
Description
### Use case
The `NullToEmptyCollection`/`Map` option can be replaced by `configOverride` as follows
```kotlin
jacksonObjectMapper().apply {
configOverride(List::class.java).setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
configOverride(Map::class.java).setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
}
```
Also, the current `NullToEmpty` option only applies to deserialization using creators and not to setters, a problem that will be resolved.
### Describe the solution you'd like
Removing these options provides the following benefits
1. Reduce the number of codes to be maintained
2. Minor performance improvement for when the value is `nullish`
### Describe alternatives you've considered
The disadvantage of this method is that it requires an explicit specification for each type.
For example, a specification for `List` will not apply to an `ArrayList`.
Similarly, a specification made for a `Collection` will not apply to a `List` or `Set`.
Therefore, the policy may be to switch only the backend of the process and leave it as a function.
### Additional context
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.