Skip to content

Feature Request: automatic serialization / deserialization of S7 classes #504

@natemcintosh

Description

@natemcintosh

The general idea

Something similar to go's json.Marshall() and json.Unmarshall(), which allow (mostly) automatic conversion to and from JSON.

Use cases

  • Configuration objects (my use case). You have a model that is complex enough to require a number of input parameters, some of them nested. Maybe you started with a list, but it's getting hard to keep track of all necessary fields, so you move to a class. Would be extremely handy to be able to read/write configurations directly to/from files (JSON, YAML, TOML, etc.)
  • Accepting structured data from a web API directly into a class.
  • Many non-web systems produce structured data, and it would be very convenient to be able to ingest their data directly into a class.

Issues with this suggestion

  • Seems like a minefield of edge cases
  • Lots of hard choices on how opinionated should such a system should be:
    • automatic type conversion, e.g. should it automatically convert a string to a date?
    • nested cases, e.g. how do you manage an Address class inside a Person class.
    • case matching, e.g. called address in JSON, but your property/class name is Address

Feel free to say "won't do" and close; I'm aware this is a big ask 😅.

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