An open API service providing package, version and dependency metadata of many open source software ecosystems and registries.

Top 4.1% on proxy.golang.org
Top 1.1% dependent packages on proxy.golang.org
Top 0.8% dependent repos on proxy.golang.org
Top 1.2% docker downloads on proxy.golang.org

proxy.golang.org : github.com/go-json-experiment/json

Package json implements semantic processing of JSON as specified in RFC 8259. JSON is a simple data interchange format that can represent primitive data types such as booleans, strings, and numbers, in addition to structured data types such as objects and arrays. Marshal and Unmarshal encode and decode Go values to/from JSON text contained within a []byte. MarshalWrite and UnmarshalRead operate on JSON text by writing to or reading from an io.Writer or io.Reader. MarshalEncode and UnmarshalDecode operate on JSON text by encoding to or decoding from a jsontext.Encoder or jsontext.Decoder. Options may be passed to each of the marshal or unmarshal functions to configure the semantic behavior of marshaling and unmarshaling (i.e., alter how JSON data is understood as Go data and vice versa). jsontext.Options may also be passed to the marshal or unmarshal functions to configure the syntactic behavior of encoding or decoding. The data types of JSON are mapped to/from the data types of Go based on the closest logical equivalent between the two type systems. For example, a JSON boolean corresponds with a Go bool, a JSON string corresponds with a Go string, a JSON number corresponds with a Go int, uint or float, a JSON array corresponds with a Go slice or array, and a JSON object corresponds with a Go struct or map. See the documentation on Marshal and Unmarshal for a comprehensive list of how the JSON and Go type systems correspond. Arbitrary Go types can customize their JSON representation by implementing Marshaler, MarshalerTo, Unmarshaler, or UnmarshalerFrom. This provides authors of Go types with control over how their types are serialized as JSON. Alternatively, users can implement functions that match MarshalFunc, MarshalToFunc, UnmarshalFunc, or UnmarshalFromFunc to specify the JSON representation for arbitrary types. This provides callers of JSON functionality with control over how any arbitrary type is serialized as JSON. A Go struct is naturally represented as a JSON object, where each Go struct field corresponds with a JSON object member. When marshaling, all Go struct fields are recursively encoded in depth-first order as JSON object members except those that are ignored or omitted. When unmarshaling, JSON object members are recursively decoded into the corresponding Go struct fields. Object members that do not match any struct fields, also known as “unknown members”, are ignored by default or rejected if RejectUnknownMembers is specified. The representation of each struct field can be customized in the "json" struct field tag, where the tag is a comma separated list of options. As a special case, if the entire tag is `json:"-"`, then the field is ignored with regard to its JSON representation. Some options also have equivalent behavior controlled by a caller-specified Options. Field-specified options take precedence over caller-specified options. The first option is the JSON object name override for the Go struct field. If the name is not specified, then the Go struct field name is used as the JSON object name. JSON names containing commas or quotes, or names identical to "" or "-", can be specified using a single-quoted string literal, where the syntax is identical to the Go grammar for a double-quoted string literal, but instead uses single quotes as the delimiters. By default, unmarshaling uses case-sensitive matching to identify the Go struct field associated with a JSON object name. After the name, the following tag options are supported: omitzero: When marshaling, the "omitzero" option specifies that the struct field should be omitted if the field value is zero as determined by the "IsZero() bool" method if present, otherwise based on whether the field is the zero Go value. This option has no effect when unmarshaling. omitempty: When marshaling, the "omitempty" option specifies that the struct field should be omitted if the field value would have been encoded as a JSON null, empty string, empty object, or empty array. This option has no effect when unmarshaling. string: The "string" option specifies that StringifyNumbers be set when marshaling or unmarshaling a struct field value. This causes numeric types to be encoded as a JSON number within a JSON string, and to be decoded from a JSON string containing the JSON number without any surrounding whitespace. This extra level of encoding is often necessary since many JSON parsers cannot precisely represent 64-bit integers. case: When unmarshaling, the "case" option specifies how JSON object names are matched with the JSON name for Go struct fields. The option is a key-value pair specified as "case:value" where the value must either be 'ignore' or 'strict'. The 'ignore' value specifies that matching is case-insensitive where dashes and underscores are also ignored. If multiple fields match, the first declared field in breadth-first order takes precedence. The 'strict' value specifies that matching is case-sensitive. This takes precedence over the MatchCaseInsensitiveNames option. inline: The "inline" option specifies that the JSON representable content of this field type is to be promoted as if they were specified in the parent struct. It is the JSON equivalent of Go struct embedding. A Go embedded field is implicitly inlined unless an explicit JSON name is specified. The inlined field must be a Go struct (that does not implement any JSON methods), jsontext.Value, map[~string]T, or an unnamed pointer to such types. When marshaling, inlined fields from a pointer type are omitted if it is nil. Inlined fields of type jsontext.Value and map[~string]T are called “inlined fallbacks” as they can represent all possible JSON object members not directly handled by the parent struct. Only one inlined fallback field may be specified in a struct, while many non-fallback fields may be specified. This option must not be specified with any other option (including the JSON name). unknown: The "unknown" option is a specialized variant of the inlined fallback to indicate that this Go struct field contains any number of unknown JSON object members. The field type must be a jsontext.Value, map[~string]T, or an unnamed pointer to such types. If DiscardUnknownMembers is specified when marshaling, the contents of this field are ignored. If RejectUnknownMembers is specified when unmarshaling, any unknown object members are rejected regardless of whether an inlined fallback with the "unknown" option exists. This option must not be specified with any other option (including the JSON name). format: The "format" option specifies a format flag used to specialize the formatting of the field value. The option is a key-value pair specified as "format:value" where the value must be either a literal consisting of letters and numbers (e.g., "format:RFC3339") or a single-quoted string literal (e.g., "format:'2006-01-02'"). The interpretation of the format flag is determined by the struct field type. The "omitzero" and "omitempty" options are mostly semantically identical. The former is defined in terms of the Go type system, while the latter in terms of the JSON type system. Consequently they behave differently in some circumstances. For example, only a nil slice or map is omitted under "omitzero", while an empty slice or map is omitted under "omitempty" regardless of nilness. The "omitzero" option is useful for types with a well-defined zero value (e.g., net/netip.Addr) or have an IsZero method (e.g., time.Time.IsZero). Every Go struct corresponds to a list of JSON representable fields which is constructed by performing a breadth-first search over all struct fields (excluding unexported or ignored fields), where the search recursively descends into inlined structs. The set of non-inlined fields in a struct must have unique JSON names. If multiple fields all have the same JSON name, then the one at shallowest depth takes precedence and the other fields at deeper depths are excluded from the list of JSON representable fields. If multiple fields at the shallowest depth have the same JSON name, but exactly one is explicitly tagged with a JSON name, then that field takes precedence and all others are excluded from the list. This is analogous to Go visibility rules for struct field selection with embedded struct types. Marshaling or unmarshaling a non-empty struct without any JSON representable fields results in a SemanticError. Unexported fields must not have any `json` tags except for `json:"-"`. Unmarshal matches JSON object names with Go struct fields using a case-sensitive match, but can be configured to use a case-insensitive match with the "case:ignore" option. This permits unmarshaling from inputs that use naming conventions such as camelCase, snake_case, or kebab-case. By default, JSON object names for Go struct fields are derived from the Go field name, but may be specified in the `json` tag. Due to JSON's heritage in JavaScript, the most common naming convention used for JSON object names is camelCase. The "format" tag option can be used to alter the formatting of certain types. JSON objects can be inlined within a parent object similar to how Go structs can be embedded within a parent struct. The inlining rules are similar to those of Go embedding, but operates upon the JSON namespace. Go struct fields can be omitted from the output depending on either the input Go value or the output JSON encoding of the value. The "omitzero" option omits a field if it is the zero Go value or implements a "IsZero() bool" method that reports true. The "omitempty" option omits a field if it encodes as an empty JSON value, which we define as a JSON null or empty JSON string, object, or array. In many cases, the behavior of "omitzero" and "omitempty" are equivalent. If both provide the desired effect, then using "omitzero" is preferred. The exact order of JSON object can be preserved through the use of a specialized type that implements MarshalerTo and UnmarshalerFrom. Some Go types have a custom JSON representation where the implementation is delegated to some external package. Consequently, the "json" package will not know how to use that external implementation. For example, the google.golang.org/protobuf/encoding/protojson package implements JSON for all google.golang.org/protobuf/proto.Message types. WithMarshalers and WithUnmarshalers can be used to configure "json" and "protojson" to cooperate together. When implementing HTTP endpoints, it is common to be operating with an io.Reader and an io.Writer. The MarshalWrite and UnmarshalRead functions assist in operating on such input/output types. UnmarshalRead reads the entirety of the io.Reader to ensure that io.EOF is encountered without any unexpected bytes after the top-level JSON value. If a type implements encoding.TextMarshaler and/or encoding.TextUnmarshaler, then the MarshalText and UnmarshalText methods are used to encode/decode the value to/from a JSON string. Due to version skew, the set of JSON object members known at compile-time may differ from the set of members encountered at execution-time. As such, it may be useful to have finer grain handling of unknown members. This package supports preserving, rejecting, or discarding such members.

Registry - Source - Documentation - JSON
purl: pkg:golang/github.com/go-json-experiment/json
License: BSD-3-Clause
Latest release: over 1 year ago
First release: about 3 years ago
Namespace: github.com/go-json-experiment
Dependent packages: 107
Dependent repositories: 46
Stars: 445 on GitHub
Forks: 18 on GitHub
Docker dependents: 8
Docker downloads: 12,409,361
See more repository details: repos.ecosyste.ms
Last synced: 24 days ago

Top 6.6% on proxy.golang.org
github.com/weberc2/tailscale v0.0.1
The easiest, most secure way to use WireGuard and 2FA.
1 version - Latest release: 11 months ago - 0 stars on GitHub
Top 6.7% on proxy.golang.org
github.com/salemove/crossplane-function-javascript v0.3.0
Package main implements a Composition Function.
1 version - Latest release: 11 months ago - 0 stars on GitHub
Top 9.5% on proxy.golang.org
github.com/stevendborrelli/function-unit-test v0.1.0
Package main implements a Composition Function.
2 versions - Latest release: about 1 year ago - 0 stars on GitHub
Top 7.6% on proxy.golang.org
github.com/tgiv014/to v0.2.0
homelab shortlink service
11 versions - Latest release: about 1 year ago - 0 stars on GitHub
Top 7.4% on proxy.golang.org
github.com/apocentre/firehose-sui v0.1.0
Firehose on Sui Blockchain
1 version - Latest release: about 1 year ago - 0 stars on GitHub
Top 7.6% on proxy.golang.org
github.com/karitham/json2ini v0.1.0
take json, output ini
1 version - Latest release: about 1 year ago - 0 stars on GitHub
Top 7.4% on proxy.golang.org
bitbucket.org/dkolbly/osf-meta v0.0.4
4 versions - Latest release: about 1 year ago
Top 7.5% on proxy.golang.org
github.com/vittitow/tailscale v1.0.0
The easiest, most secure way to use WireGuard and 2FA.
1 version - Latest release: about 1 year ago - 0 stars on GitHub
Top 7.5% on proxy.golang.org
github.com/Vittitow/tailscale v1.0.0
The easiest, most secure way to use WireGuard and 2FA.
1 version - Latest release: about 1 year ago - 0 stars on GitHub
Top 7.6% on proxy.golang.org
github.com/crossplane-contrib/function-extra-resources v0.0.3
Package main implements a Composition Function.
3 versions - Latest release: about 1 year ago - 8 stars on GitHub
github.com/elastic/crossplane-function-cue v0.1.9
A crossplane function that runs cue scripts that adhere to a specific interface
10 versions - Latest release: about 1 year ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/streamingfast/firehose-near v1.1.14
24 versions - Latest release: about 1 year ago - 3 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/streamingfast/sf-near v1.1.14
24 versions - Latest release: about 1 year ago - 1 dependent package - 3 stars on GitHub
Top 9.0% on proxy.golang.org
github.com/crossplane-contrib/function-cel-filter v0.1.1
Package main implements a Composition Function.
2 versions - Latest release: about 1 year ago - 0 stars on GitHub
github.com/smartcontractkit/ccip/v2 v2.9.0
Cross Chain Interoperability Protocol
230 versions - Latest release: over 1 year ago - 22 stars on GitHub
Top 9.0% on proxy.golang.org
github.com/black-desk/busagent v0.1.1
2 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 9.2% on proxy.golang.org
github.com/bezineb5/go-generic-optional v0.1.2
Implementation of Optionals in Go using Generics
2 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 4.0% on proxy.golang.org
github.com/vespa-engine/vespa/client/go v0.0.0-20240125161945-60f9a3c70254
The open big data serving engine. https://vespa.ai
1,071 versions - Latest release: over 1 year ago - 4,343 stars on GitHub
Top 8.9% on proxy.golang.org
github.com/giantswarm/crossplane-fn-generate-subnets v0.1.1
Package main implements a Composition Function.
2 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 8.9% on proxy.golang.org
github.com/giantswarm/crossplane-fn-describe-nodegroups v0.1.1
Package main implements a Composition Function.
2 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 1.9% on proxy.golang.org
github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240125012333-23b612bef902
node of the decentralized oracle network, bridging on and off-chain computation
1,644 versions - Latest release: over 1 year ago - 5 dependent packages - 2 dependent repositories - 6,843 stars on GitHub
Top 9.8% on proxy.golang.org
github.com/romshark/jscan-experimental-decoder v0.0.0-20240122115729-43257140e2a2
This is an experimental JSON decoder for Go based on jscan
9 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 9.6% on proxy.golang.org
github.com/smartcontractkit/ccip/integration-tests v0.0.0-20240119190529-853dd75640e3
Cross Chain Interoperability Protocol
70 versions - Latest release: over 1 year ago - 23 stars on GitHub
Top 9.9% on proxy.golang.org
github.com/smartcontractkit/chainlink-starknet/integration-tests v0.0.0-20240119162652-3a7274645007
13 versions - Latest release: over 1 year ago - 38 stars on GitHub
Top 5.7% on proxy.golang.org
github.com/smartcontractkit/chainlink-starknet/ops v0.0.0-20240119162652-3a7274645007
55 versions - Latest release: over 1 year ago - 1 dependent package - 6 dependent repositories - 29 stars on GitHub
Top 6.5% on proxy.golang.org
github.com/smartcontractkit/chainlink-starknet/monitoring v0.0.0-20240119162652-3a7274645007
19 versions - Latest release: over 1 year ago - 29 stars on GitHub
github.com/octohelm/courier v0.0.0-20240118025048-7d236083586b
26 versions - Latest release: over 1 year ago - 4 dependent packages - 1 dependent repositories - 0 stars on GitHub
Top 9.7% on proxy.golang.org
github.com/bangunindo/trap2json/tests v0.0.0-20240117122019-30119540557d
SNMP Trap to JSON Forwarder
2 versions - Latest release: over 1 year ago - 23 stars on GitHub
Top 9.9% on proxy.golang.org
github.com/octohelm/kubepkgspec v0.0.0-20240117081917-6c879b29e668
1 version - Latest release: over 1 year ago - 0 stars on GitHub
Top 9.4% on proxy.golang.org
github.com/trilogy-group/tailscale v1.44.3
The easiest, most secure way to use WireGuard and 2FA.
2 versions - Latest release: over 1 year ago - 0 stars on GitHub
github.com/raymonstah/asianamericanswiki v0.0.0-20240104081623-4908fb2c832f
This is the source code for asianamericans.wiki
11 versions - Latest release: over 1 year ago - 1 stars on GitHub
github.com/crossplane/function-template-go v0.0.0-20240102203752-1facea7db70c
Package main implements a Composition Function.
18 versions - Latest release: over 1 year ago - 1 dependent repositories - 0 stars on GitHub
Top 10.0% on proxy.golang.org
github.com/smartcontractkit/chainlink-cosmos/integration-tests v0.0.0-20231218175426-6e0427c661e5
2 versions - Latest release: over 1 year ago - 16 stars on GitHub
github.com/innoai-tech/worklist v0.0.0-20231218030919-22eb11f05051
10 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 10.0% on proxy.golang.org
github.com/mymejjtt/tailscale v1.56.1
113 versions - Latest release: over 1 year ago
Top 10.0% on proxy.golang.org
github.com/MYMEJJTT/tailscale v1.56.1
113 versions - Latest release: over 1 year ago
Top 10.0% on proxy.golang.org
github.com/QZFKNGKV/tailscale v1.56.1
Package tailscaleroot embeds VERSION.txt into the binary.
113 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 10.0% on proxy.golang.org
github.com/qzfkngkv/tailscale v1.56.1
113 versions - Latest release: over 1 year ago
Top 9.3% on proxy.golang.org
github.com/upbound/function-argo-eks-discovery v0.1.0
Package main implements a Composition Function.
1 version - Latest release: over 1 year ago - 0 stars on GitHub
tailscale-www-git-rosszurowski-nextjs-go-get-alt-tailscale.vercel.app v1.54.1
1 version - Latest release: over 1 year ago
github.com/stevendborrelli/function-patch-and-transform v0.4.0
Fork of Crossplane's function-patch-and-transform to support conditionals
4 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 9.2% on proxy.golang.org
github.com/stevendborrelli/function-conditional-patch-and-transform v0.4.0
Package main implements a Composition Function.
4 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 9.0% on proxy.golang.org
github.com/streamingfast/firehose-acme v0.0.0-20231114134800-134f12f11912
7 versions - Latest release: over 1 year ago - 0 stars on GitHub
github.com/lostluck/experimental v0.0.0-20231111200331-498d5911a3ad
11 versions - Latest release: over 1 year ago - 4 stars on GitHub
github.com/ydnar/scratch v0.0.0-20231109204400-ff658adcb063
scratch workspace for experiments
3 versions - Latest release: over 1 year ago - 0 stars on GitHub
github.com/crossplane-contrib/function-dummy v0.2.1
Package main implements a Composition Function.
4 versions - Latest release: over 1 year ago - 1 dependent package - 0 stars on GitHub
github.com/Jnchk/tailscale v1.52.1
Package tailscaleroot embeds VERSION.txt into the binary.
114 versions - Latest release: over 1 year ago - 0 stars on GitHub
github.com/jnchk/tailscale v1.52.1
The easiest, most secure way to use WireGuard and 2FA.
114 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/canopyclimate/golive v0.0.0-20231023213029-dd7646587cdd
LiveView for Go
28 versions - Latest release: over 1 year ago - 11 stars on GitHub
cuelabs.dev/go/oci/cmd/ocisrv v0.0.0-20231019154126-e23d94b2e78b
Go modules related to OCI (Open Container Initiative) registries
4 versions - Latest release: over 1 year ago - 17 stars on GitHub
Top 9.6% on proxy.golang.org
github.com/devzero-inc/tailscale v1.50.1-56ebcd1e
1 version - Latest release: over 1 year ago
github.com/dogarithm/fhir/go v0.1.0-fastjson
FHIR Protocol Buffers
6 versions - Latest release: over 1 year ago - 0 stars on GitHub
github.com/mayef/tailscale v0.0.0-20230904063820-9d29f1b41eb8
Package tailscaleroot embeds VERSION.txt into the binary.
1 version - Latest release: over 1 year ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/davecheney/pub v0.0.0-20230830094922-2e35eaeff18b
pub, a tiny ActivityPub to Mastodon bridge
88 versions - Latest release: over 1 year ago - 157 stars on GitHub
Top 10.0% on proxy.golang.org
github.com/kripsy/gophermart v0.0.0-20230808172741-c2dbf0ee6bb3
Graduation project #1 for yandex practicum
1 version - Latest release: almost 2 years ago - 1 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/nshalman/tailscale v1.46.0
The easiest, most secure way to use WireGuard and 2FA.
106 versions - Latest release: almost 2 years ago - 6 stars on GitHub
github.com/Karitham/iDIoT/api v0.0.0-20230629162500-5745a541e84d
2 versions - Latest release: almost 2 years ago - 1 dependent repositories - 0 stars on GitHub
Top 9.7% on proxy.golang.org
git.lzc256.com/lzc256/tailscale v1.44.0
99 versions - Latest release: almost 2 years ago
github.com/matty234/tailscale v1.42.1
The easiest, most secure way to use WireGuard and 2FA.
1 version - Latest release: almost 2 years ago - 0 stars on GitHub
github.com/bardic/pub v0.0.0-20230510103606-7e4e87ff6b1d
pub, a tiny ActivityPub to Mastodon bridge
1 version - Latest release: about 2 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/levifan/tailscale v1.36.2
The easiest, most secure way to use WireGuard and 2FA.
89 versions - Latest release: over 2 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/usenimbus/tailscale v1.36.1
88 versions - Latest release: over 2 years ago
Top 8.2% on proxy.golang.org
github.com/operandinc/tailscale v1.0.1
The easiest, most secure way to use WireGuard and 2FA.
1 version - Latest release: over 2 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/ringtailsoftware/pub v0.0.0-20230105103556-7f59293b5203
1 version - Latest release: over 2 years ago
Top 8.2% on proxy.golang.org
github.com/hbowron/tailscale v1.34.2
The easiest, most secure way to use WireGuard and 2FA.
86 versions - Latest release: over 2 years ago - 1 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/hjcore/tailscale v0.0.0-20221214090826-ded95ce4e6f9
Package tailscaleroot embeds VERSION.txt into the binary.
2 versions - Latest release: over 2 years ago
Top 8.2% on proxy.golang.org
github.com/rbangert/tailscale v1.34.0
84 versions - Latest release: over 2 years ago
Top 8.2% on proxy.golang.org
github.com/szhhq/tailscale v0.0.0-20221111052918-3caaee035fbf
Package tailscaleroot embeds VERSION.txt into the binary.
1 version - Latest release: over 2 years ago - 0 stars on GitHub
Top 8.3% on proxy.golang.org
github.com/go-asm/asmdb/internal/genasmdb v0.0.0-20210813194650-770af0f99e7f
Command genasmdb auto-generate an assembly database from asmjit/asmdb.
1 version - Latest release: almost 4 years ago - 2 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/go-asm/asmdb/internal/asmdb v0.0.0-20210813183018-ea05a7c4692b
Command asmdb auto-generate an assembly database from asmjit/asmdb.
1 version - Latest release: almost 4 years ago - 2 stars on GitHub
Past Dependents
Include Past Dependents

Check this option to include packages that no longer depend on this package in their latest version but previously did.