diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-07-02 08:33:02 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-02 08:33:02 -0400 |
commit | 04209873562dff25c5d6f800e4a535dff18d485a (patch) | |
tree | 67f0ee2916812072967707ae6de779ebbcdb0476 /vendor/github.com/mitchellh/mapstructure/README.md | |
parent | 955c1d2bfeac0c399bbc4d82fd7b72ed4cc868d3 (diff) | |
parent | 735be12481cdc3edfcbca3500172d2164255e1a3 (diff) | |
download | podman-04209873562dff25c5d6f800e4a535dff18d485a.tar.gz podman-04209873562dff25c5d6f800e4a535dff18d485a.tar.bz2 podman-04209873562dff25c5d6f800e4a535dff18d485a.zip |
Merge pull request #10844 from vrothberg/vendor-common
vendor containers/common@main
Diffstat (limited to 'vendor/github.com/mitchellh/mapstructure/README.md')
-rw-r--r-- | vendor/github.com/mitchellh/mapstructure/README.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/vendor/github.com/mitchellh/mapstructure/README.md b/vendor/github.com/mitchellh/mapstructure/README.md new file mode 100644 index 000000000..0018dc7d9 --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/README.md @@ -0,0 +1,46 @@ +# mapstructure [](https://godoc.org/github.com/mitchellh/mapstructure) + +mapstructure is a Go library for decoding generic map values to structures +and vice versa, while providing helpful error handling. + +This library is most useful when decoding values from some data stream (JSON, +Gob, etc.) where you don't _quite_ know the structure of the underlying data +until you read a part of it. You can therefore read a `map[string]interface{}` +and use this library to decode it into the proper underlying native Go +structure. + +## Installation + +Standard `go get`: + +``` +$ go get github.com/mitchellh/mapstructure +``` + +## Usage & Example + +For usage and examples see the [Godoc](http://godoc.org/github.com/mitchellh/mapstructure). + +The `Decode` function has examples associated with it there. + +## But Why?! + +Go offers fantastic standard libraries for decoding formats such as JSON. +The standard method is to have a struct pre-created, and populate that struct +from the bytes of the encoded format. This is great, but the problem is if +you have configuration or an encoding that changes slightly depending on +specific fields. For example, consider this JSON: + +```json +{ + "type": "person", + "name": "Mitchell" +} +``` + +Perhaps we can't populate a specific structure without first reading +the "type" field from the JSON. We could always do two passes over the +decoding of the JSON (reading the "type" first, and the rest later). +However, it is much simpler to just decode this into a `map[string]interface{}` +structure, read the "type" key, then use something like this library +to decode it into the proper structure. |