Skip to content
This repository has been archived by the owner on Oct 2, 2020. It is now read-only.
/ mapdecode Public archive

Implement YAML/JSON decoding in one place.

License

Notifications You must be signed in to change notification settings

uber-go/mapdecode

Repository files navigation

mapdecode GoDoc Build Status Coverage Status

mapdecode implements a generic interface{} decoder. It allows implementing custom YAML/JSON decoding logic only once. Instead of implementing the same UnmarshalYAML and UnmarshalJSON twice, you can implement Decode once, parse the YAML/JSON input into a map[string]interface{} and decode it using this package.

var data map[string]interface{}
if err := json.Decode(&data, input); err != nil {
    log.Fatal(err)
}

var result MyStruct
if err := mapdecode.Decode(&result, data); err != nil {
    log.Fatal(err)
}

This package relies heavily on mapstructure for much of its functionality.

Status

Stable: No breaking changes will be made before 2.0.


Released under the MIT License.