Go MapSlice for ordered marshal/ unmarshal of maps in JSON
package main import ( "encoding/json" "fmt" "log" "github.com/ake-persson/mapslice-json" ) func main() { ms := mapslice.MapSlice{ mapslice.MapItem{Key: "abc", Value: 123}, mapslice.MapItem{Key: "def", Value: 456}, mapslice.MapItem{Key: "ghi", Value: 789}, } b, err := json.Marshal(ms) if err != nil { log.Fatal(err) } fmt.Println(string(b)) ms = mapslice.MapSlice{} if err := json.Unmarshal(b, &ms); err != nil { log.Fatal(err) } fmt.Println(ms) }