Skip to content

Remove NullToEmpty options or change backend #877

@k163377

Description

@k163377

Use case

The NullToEmptyCollection/Map option can be replaced by configOverride as follows

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions