Documentation ¶
Index ¶
- func DecodePath(m map[string]interface{}, rawVal interface{}) error
- func DecodeSlicePath(ms []map[string]interface{}, rawSlice interface{}) error
- func Map2Struct(m interface{}, rawVal interface{}) error
- func Struct2Map(content interface{}) (map[string]interface{}, error)
- type DecodeHookFunc
- type Decoder
- type DecoderConfig
- type Error
- type Metadata
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodePath ¶
DecodePath takes a map and uses reflection to convert it into the given Go native structure. Tags are used to specify the mapping between fields in the map and structure
func DecodeSlicePath ¶
DecodeSlicePath decodes a slice of maps against a slice of structures that contain specified tags
func Map2Struct ¶
func Map2Struct(m interface{}, rawVal interface{}) error
Map2Struct takes a map and uses reflection to convert it into the given Go native structure. val must be a pointer to a struct.
func Struct2Map ¶
Types ¶
type DecodeHookFunc ¶
type Decoder ¶
type Decoder struct {
// contains filtered or unexported fields
}
A Decoder takes a raw interface value and turns it into structured data, keeping track of rich error information along the way in case anything goes wrong. Unlike the basic top-level Decode method, you can more finely control how the Decoder behaves using the DecoderConfig structure. The top-level Decode method is just a convenience that sets up the most basic Decoder.
func NewDecoder ¶
func NewDecoder(config *DecoderConfig) (*Decoder, error)
NewDecoder returns a new decoder for the given configuration. Once a decoder has been returned, the same configuration must not be used again.
func NewPathDecoder ¶
func NewPathDecoder(config *DecoderConfig) (*Decoder, error)
NewPathDecoder returns a new decoder for the given configuration. This is used to decode path specific structures
type DecoderConfig ¶
type DecoderConfig struct { // DecodeHook, if set, will be called before any decoding and any // type conversion (if WeaklyTypedInput is on). This lets you modify // the values before they're set down onto the resulting struct. // // If an error is returned, the entire decode will fail with that // error. DecodeHook DecodeHookFunc // If ErrorUnused is true, then it is an error for there to exist // keys in the original map that were unused in the decoding process // (extra keys). ErrorUnused bool // If WeaklyTypedInput is true, the decoder will make the following // "weak" conversions: // // - bools to string (true = "1", false = "0") // - numbers to string (base 10) // - bools to int/uint (true = 1, false = 0) // - strings to int/uint (base implied by prefix) // - int to bool (true if value != 0) // - string to bool (accepts: 1, t, T, TRUE, true, True, 0, f, F, // FALSE, false, False. Anything else is an error) // - empty array = empty map and vice versa // WeaklyTypedInput bool // Metadata is the struct that will contain extra metadata about // the decoding. If this is nil, then no metadata will be tracked. Metadata *Metadata // Result is a pointer to the struct that will contain the decoded // value. Result interface{} // The tag name that mapstructure reads for field names. This // defaults to "mapstructure" TagName string }
DecoderConfig is the configuration that is used to create a new decoder and allows customization of various aspects of decoding.
type Metadata ¶
type Metadata struct { // Keys are the keys of the structure which were successfully decoded Keys []string // Unused is a slice of keys that were found in the raw value but // weren't decoded since there was no matching field in the result interface Unused []string }
Metadata contains information about decoding a structure that is tedious or difficult to get otherwise.