MCPcopy
hub / github.com/mitchellh/mapstructure

github.com/mitchellh/mapstructure @v1.5.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.5.0 ↗
237 symbols 691 edges 8 files 46 documented · 19%
README

mapstructure Godoc

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.

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:

{
  "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.

Extension points exported contracts — how you extend this code

DecodeHookFunc (Interface)
DecodeHookFunc is the callback function that can be used for data transformations. See "DecodeHook" in the DecoderConfig
mapstructure.go
Interface (Interface)
(no doc) [1 implementers]
mapstructure_bugs_test.go
DecodeHookFuncType (FuncType)
DecodeHookFuncType is a DecodeHookFunc which has complete information about the source and target types.
mapstructure.go
DecodeHookFuncKind (FuncType)
DecodeHookFuncKind is a DecodeHookFunc which knows only the Kinds of the source and target types.
mapstructure.go
DecodeHookFuncValue (FuncType)
DecodeHookFuncValue is a DecodeHookFunc which has complete access to both the source and target values.
mapstructure.go

Core symbols most depended-on inside this repo

Decode
called by 68
mapstructure.go
Error
called by 56
error.go
NewDecoder
called by 33
mapstructure.go
Decode
called by 33
mapstructure.go
DecodeHookExec
called by 16
decode_hooks.go
decode
called by 11
mapstructure.go
appendErrors
called by 9
error.go
getKind
called by 7
mapstructure.go

Shape

Function 146
Struct 57
Method 23
TypeAlias 6
FuncType 3
Interface 2

Languages

Go100%

Modules by API surface

mapstructure_test.go113 symbols
mapstructure.go35 symbols
mapstructure_bugs_test.go27 symbols
decode_hooks_test.go19 symbols
mapstructure_benchmark_test.go16 symbols
decode_hooks.go12 symbols
mapstructure_examples_test.go11 symbols
error.go4 symbols

For agents

$ claude mcp add mapstructure \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact