https://github.com/nicolasparada/go-omap
Golang: map which keeps order even after JSON/YAML marshalling
https://github.com/nicolasparada/go-omap
json map orderered sorted yaml
Last synced: over 1 year ago
JSON representation
Golang: map which keeps order even after JSON/YAML marshalling
- Host: GitHub
- URL: https://github.com/nicolasparada/go-omap
- Owner: nicolasparada
- License: isc
- Created: 2024-02-10T18:26:32.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-25T12:12:45.000Z (over 1 year ago)
- Last Synced: 2025-02-26T08:39:29.399Z (over 1 year ago)
- Topics: json, map, orderered, sorted, yaml
- Language: Go
- Homepage:
- Size: 9.77 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://pkg.go.dev/github.com/nicolasparada/go-omap)
# Golang Ordered Map
Golang Ordered Map is a `map` data structure that maintains the order of the keys.
It also supports JSON and YAML marshalling.
## Installation
```bash
go get github.com/nicolasparada/go-omap
```
## Usage
```go
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}
}
```