Skip to content

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

@pjfanning

Description

@pjfanning

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

Based on FasterXML/jackson-module-scala#316 and some other issues that have popped up where users want to work with Map<KeyClass, ValueClass> 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions