FasterXML / FasterXML/jackson-databind

Support optional serialization/deserialization of map with non-string key type

Open
#3,283 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Java
Stars
3.7k
Forks
1.5k
Avg merge
3d 6h
Merged PRs (30d)
28

Description

**Is your feature request related to a problem? Please describe.**

Based on https://github.com/FasterXML/jackson-module-scala/issues/316 and some other issues that have popped up where users want to work with Map where the KeyClass can't be readily represented as a String.

**Describe the solution you'd like**

Typically, Maps (eg `Map(1 -> "a", 2-> "b")`) are serialized as something like:

```
{
"1": "a",
"2": "b"
}
```

But we could have a way to annotate this Map so that it gets serialized as:

```
[
{
"key": 1,
"value": "a"
},
{
"key": 2,
"value": "b"
}
]
```

The names of the JSON elements `key` and `value` could be made configurable.

This latter serialization could allow the key value to be represented as a JSON object or array.

This serialization might be useful for someone who wanted to JSON serialize a Map as opposed to using Java serialization.

**Additional context**
Not urgent. Just opened as a discussion topic. Users can currently write their own custom serializers and deserializers to achieve this.

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.