Uploaded image for project: 'Johnzon'
  1. Johnzon
  2. JOHNZON-152

Ability to serialize field of a type from value introspection instead of field introspection

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Wish
    • Status: Resolved
    • Minor
    • Resolution: Won't Fix
    • 1.1.5
    • None
    • Mapper
    • None

    Description

      In our project, we have a few types that have an Object field that is used to accept a few different types of objects.

      • Sometimes the field is an effective primitives (Float, Integer, Long, etc)
      • Sometimes they're Collections (List, Set)
      • Sometimes they're other custom defined objects

      Right now johnzon mapper determines the type of the field based on its defined type "Object" which means just about nothing. This almost always causes serialization issues (with default behavior) unless its null.

      We would like to have an annotation (such as @JohnzonDynamic) to indicate the field is dynamic and its type should be determined via introspection of the value, rather than the field's declared type. Similar to how a map's value is done.

      For simplicity, this could be considered a read-only field to avoid the complexity of trying to set this field to whatever data comes in during deserialization.

      Right now we're working around this via a custom ObjectWriter that converts the object to a map and then passes the map to serialization, which has some inconveniences of maintenance.
      Maybe other projects could see some use of this?

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            steven.walters Steven Walters
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment