Skip to content

nicolasparada/go-omap

Repository files navigation

Golang Ordered Map

Go Reference

Golang Ordered Map is a map data structure that maintains the order of the keys. It also supports JSON and YAML marshalling.

Installation

go get github.com/nicolasparada/go-omap

Usage

package main

import (
    omap "github.com/nicolasparada/go-omap"
)

func main() {
    data := []byte(`{ "name": "John", "age": 30, "active": true }`)

    var unordered map[string]any{}
    if err := json.Unmarshal(data, &unordered); err != nil {
        panic(err)
    }

    var ordered omap.Map[string, any]
    if err := json.Unmarshal(data, &ordered); err != nil {
        panic(err)
    }

    json.NewEncoder(os.Stdout).Encode(unordered) // will print in undefined order
    json.NewEncoder(os.Stdout).Encode(ordered) // will always print: {"name":"John","age":30,"active":true}
}

About

Golang: map which keeps order even after JSON/YAML marshalling

Topics

Resources

License

Stars

Watchers

Forks

Languages