github.com/go-viper/mapstructure/v2
go
pkg:golang/github.com/go-viper/mapstructure/v2
4,572 Dependabot PRs
11 days ago
2,877 repositories
7 repositories
Security Advisories
go-viper's mapstructure May Leak Sensitive Information in Logs When Processing Malformed Data
mapstructure May Leak Sensitive Information in Logs When Processing Malformed Data
Recent PRs
chore(deps): bump the go_modules group across 5 directories with 4 updates
chore(deps): bump github.com/go-viper/mapstructure/v2 from 2.4.0 to 2.5.0
fix(deps): bump the external group across 1 directory with 19 updates
opentdf/platform #3452
fix(deps): bump the external group across 1 directory with 21 updates
opentdf/platform #3431
Bump the go_modules group across 1 directory with 8 updates
GoogleCloudPlatform/osconfig #963
chore(deps): bump github.com/go-viper/mapstructure/v2 from 2.4.0 to 2.5.0
tsingsun/woocoo #915
Bump the go_modules group across 20 directories with 6 updates
Bump the go_modules group across 22 directories with 6 updates
fix(deps): bump the external group across 1 directory with 19 updates
opentdf/platform #3375
deps: bump github.com/go-viper/mapstructure/v2 from 2.4.0 to 2.5.0
VibeWarden/vibewarden #1001
Bump the go_modules group across 20 directories with 6 updates
Bump the go_modules group across 18 directories with 5 updates
EU-UNION-AI-PACT/kubernetes #7
Bump the go_modules group across 14 directories with 4 updates
fix(deps): bump the external group across 1 directory with 19 updates
opentdf/platform #3314
fix(deps): bump the external group across 1 directory with 18 updates
opentdf/platform #3302
build(deps): bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.4.0 in /kubernetes/apps/base/network-system/dex-k8s-authenticator/app/resources
xunholy/k8s-gitops #3896
build(deps): bump the go_modules group across 11 directories with 3 updates
build(deps): bump the go_modules group across 3 directories with 5 updates
Bump the go_modules group across 33 directories with 6 updates
build(deps): Bump github.com/go-viper/mapstructure/v2 from 2.4.0 to 2.5.0 in the go-minor-patch group across 1 directory
anchore/fangs #122
Bump the go_modules group across 3 directories with 12 updates
Jackblanket847/terraform-provider-aws #8
build(deps): bump the go_modules group across 5 directories with 11 updates
Bump the go_modules group across 16 directories with 3 updates
Bump the go_modules group across 3 directories with 11 updates
Jackblanket847/terraform-provider-aws #7
chore(deps): bump the go_modules group across 1 directory with 3 updates
fix(deps): bump the external group across 1 directory with 24 updates
opentdf/platform #3259
Bump the go_modules group across 1 directory with 8 updates
Bump the go_modules group across 3 directories with 12 updates
blampe/patches #11
Bump the go-packages group across 1 directory with 41 updates
quachhoang2002/websocket-test #13
fix(deps): bump the external group across 1 directory with 26 updates
opentdf/platform #3250
build(deps): bump the build group across 1 directory with 56 updates
Bump the go_modules group across 3 directories with 11 updates
blampe/patches #10
Bump the go_modules group across 17 directories with 5 updates
build(deps): Bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.4.0
chore(deps): bump the go_modules group across 5 directories with 23 updates
GlacierEQ/sourcegraph-public-snapshot #13
build(deps): Bump the all-go group across 1 directory with 2 updates
evstack/ev-node #3191
fix(deps): bump the external group across 1 directory with 25 updates
opentdf/platform #3202
Bump the go_modules group across 1 directory with 2 updates
Bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.4.0 in /processor/awscwotlpbatchsplitprocessor
amazon-contributing/opentelemetry-collector-contrib #456
Bump the go_modules group across 1 directory with 2 updates
Bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.4.0 in /connector/genaiadapterconnector
amazon-contributing/opentelemetry-collector-contrib #452
Bump the go_modules group across 12 directories with 4 updates
Bump the go_modules group across 15 directories with 4 updates
Bump the go_modules group across 17 directories with 4 updates
Bump the go_modules group across 14 directories with 4 updates
Bump the go_modules group across 16 directories with 5 updates
chore(deps): Bump the go_modules group across 1 directory with 14 updates
Bump the go_modules group across 32 directories with 6 updates
build(deps): bump the go_modules group across 2 directories with 9 updates
Package Details
| Name: | github.com/go-viper/mapstructure/v2 |
| Ecosystem: | go |
| PURL Type: | golang |
| Package URL: | pkg:golang/github.com/go-viper/mapstructure/v2 |
| JSON API: | View JSON |
Security Advisories
Package Information
Package mapstructure exposes functionality to convert one arbitrary Go type into another, typically to convert a map[string]interface{} into a native Go structure. The Go structure can be arbitrarily complex, containing slices, other structs, etc. and the decoder will properly decode nested maps and so on into the proper structures in the native Go struct. See the examples to see what the decoder is capable of. The simplest function to start with is Decode. When decoding to a struct, mapstructure will use the field name by default to perform the mapping. For example, if a struct has a field "Username" then mapstructure will look for a key in the source value of "username" (case insensitive). You can change the behavior of mapstructure by using struct tags. The default struct tag that mapstructure looks for is "mapstructure" but you can customize it using DecoderConfig. To rename the key that mapstructure looks for, use the "mapstructure" tag and set a value directly. For example, to change the "username" example above to "user": Embedded structs are treated as if they're another field with that name. By default, the two structs below are equivalent when decoding with mapstructure: This would require an input that looks like below: If your "person" value is NOT nested, then you can append ",squash" to your tag value and mapstructure will treat it as if the embedded struct were part of the struct directly. Example: Now the following input would be accepted: When decoding from a struct to a map, the squash tag squashes the struct fields into a single map. Using the example structs from above: Will be decoded into a map: DecoderConfig has a field that changes the behavior of mapstructure to always squash embedded structs. If there are any unmapped keys in the source value, mapstructure by default will silently ignore them. You can error by setting ErrorUnused in DecoderConfig. If you're using Metadata you can also maintain a slice of the unused keys. You can also use the ",remain" suffix on your tag to collect all unused values in a map. The field with this tag MUST be a map type and should probably be a "map[string]interface{}" or "map[interface{}]interface{}". See example below: Given the input below, Other would be populated with the other values that weren't used (everything but "name"): When decoding from a struct to any other value, you may use the ",omitempty" suffix on your tag to omit that value if it equates to the zero value. The zero value of all types is specified in the Go specification. For example, the zero type of a numeric type is zero ("0"). If the struct field value is zero and a numeric type, the field is empty, and it won't be encoded into the destination type. Since unexported (private) struct fields cannot be set outside the package where they are defined, the decoder will simply skip them. For this output type definition: Using this map as input: The following struct will be decoded: mapstructure is highly configurable. See the DecoderConfig struct for other features and options that are supported.
| Repository: | https://github.com/go-viper/mapstructure |
| Homepage: | https://github.com/go-viper/mapstructure |
| Latest Release: |
v2.2.1
over 1 year ago |
| Dependent Repos: | 0 |
| Dependent Packages: | 0 |
| Ranking: | Top 10.7353% by dependent repos Top 9.5205% by dependent pkgs |