Skip to content

remove use of json-iterator / reflect2 #202

Description

@liggitt

The approach taken by json-iterator and its reflect library is not long-term stable (it pins to internal details of the stdlib reflect package), and requires maintenance per go release, which does not appear to be sustainable golang/go#48238 (comment)

Minimum versions to work with go1.18+ are:

  • github.com/json-iterator/go v1.1.12
  • github.com/modern-go/reflect2 v1.0.2

In addition to the maintenance aspect, it is hard to reason about the safety of the implementation (golang/go#48238 (comment))

I'm exploring what it would look like to use the stdlib json decoder as a base and add in the features we rely on (case-sensitive keys, preservation of ints/floats, etc) in kubernetes/kubernetes#105030

I would encourage this project to consider the long-term sustainability/safety of the json-iterator dependency as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.

    Type

    No type

    Projects

    Status
    Dependencies to replace/remove
    Status
    In Progress
    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions