Mapstructure

Go library for decoding generic map values into native Go structures and vice versa.
Alternatives To Mapstructure
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Mapstructure6,84911,2479,8787 days ago19April 20, 202270mitGo
Go library for decoding generic map values into native Go structures and vice versa.
Jansson2,793224 days ago4September 13, 202195mitC
C library for encoding, decoding and manipulating JSON data
Gojay1,991292702 years ago4June 11, 201947mitGo
fastest JSON encoder/decoder with powerful stream API for Golang
Unbox1,986
1094 years ago25July 18, 201835mitSwift
[Deprecated] The easy to use Swift JSON decoder
Utils1,7204,2251,35720 days ago65November 24, 202117otherPHP
🛠 Lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.
Cheshire1,427
4 months ago49February 09, 202050mitClojure
Clojure JSON and JSON SMILE (binary json format) encoding/decoding
Dataclasses Json1,130372554 days ago64March 21, 2022163mitPython
Easily serialize Data Classes to and from JSON
Decodable1,056
385 years ago11October 22, 201836mitSwift
[Probably deprecated] Swift 2/3 JSON unmarshalling done (more) right
Encoding8781167 months ago62April 26, 202212mitGo
Go package containing implementations of efficient encoding, decoding, and validation APIs.
Jiffy81310248a year ago18February 22, 202216otherC++
JSON NIFs for Erlang
Alternatives To Mapstructure
Select To Compare


Alternative Project Comparisons
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.

Popular Decoding Projects
Popular Json Projects
Popular Data Processing Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Go
Json
Struct
Decoding