FasterXML / FasterXML/jackson-module-kotlin

Remove `NullToEmpty` options or change backend

Open
#877 0 comments 1 reaction 0 assignees View on GitHub
enhancement
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.