Skip to content

Json should allow a way to specify how to marshal/unmarshal an object (e.g. encoding/uuid) #4257

@edyu

Description

@edyu

PLEASE POST THIS IN THE DISCUSSION TAB UNDER "PROPOSALS" OR "IDEAS/REQUESTS"

Is your feature request related to a problem? Please describe.
uuids are being used more and more often as id and when writing or reading from json, it's much better to use the string format of the uuid which is a string of the format 8-4-4-4-12. However due to implementation detail, uuid.Identifier is basically distinct [16]u8 which when printing or marshalling, it's basically an array of bytes that is not only long but also difficult to discern.
Contrast [16]u8
[38,101,146,205,150,13,64,145,152,28,140,37,196,75,16,24]
with string
266592cd-960d-4091-981c-8c25c44b1018

Describe the solution you'd like
A generic solution would be something similar to how fmt allows you to use either fmt:"s" in the struct and then overwrite behavior with User_Formatter. It would be great if json has/reuses the similar ideas.

Otherwise, it would be great if we can just get uuid to be able to marshal/unmarshal to json and printing to fmt using the string format while still maintaining maybe a binary format such as distinct [16]u8 internally.

Additional context
I'm using uuid as the id field of multiple structs and I'm also writing a rest api which uses the id to specify which resource to start/stop etc.

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