ARO-RP/vendor/sigs.k8s.io/json
Eric Fried d32c09410f
Revendor hive to 70b666ec8
Hive needs to be vendored at the same commit level as it is deployed in
ARO. One reason, as described in the linked card, is that changes in
APIs can lead to unintended edits during round-trip Get()/Update()
flows.

ARO-3801
2023-08-25 10:52:26 -05:00
..
internal/golang/encoding/json Revendor hive to 70b666ec8 2023-08-25 10:52:26 -05:00
CONTRIBUTING.md
LICENSE
Makefile
OWNERS
README.md
SECURITY.md
SECURITY_CONTACTS
code-of-conduct.md
doc.go
json.go Revendor hive to 70b666ec8 2023-08-25 10:52:26 -05:00

README.md

sigs.k8s.io/json

Go Reference

Introduction

This library is a subproject of sig-api-machinery. It provides case-sensitive, integer-preserving JSON unmarshaling functions based on encoding/json Unmarshal().

Compatibility

The UnmarshalCaseSensitivePreserveInts() function behaves like encoding/json#Unmarshal() with the following differences:

  • JSON object keys are treated case-sensitively. Object keys must exactly match json tag names (for tagged struct fields) or struct field names (for untagged struct fields).
  • JSON integers are unmarshaled into interface{} fields as an int64 instead of a float64 when possible, falling back to float64 on any parse or overflow error.
  • Syntax errors do not return an encoding/json *SyntaxError error. Instead, they return an error which can be passed to SyntaxErrorOffset() to obtain an offset.

Additional capabilities

The UnmarshalStrict() function decodes identically to UnmarshalCaseSensitivePreserveInts(), and also returns non-fatal strict errors encountered while decoding:

  • Duplicate fields encountered
  • Unknown fields encountered

Community, discussion, contribution, and support

You can reach the maintainers of this project via the sig-api-machinery mailing list / channels.

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.