Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

urlencoder

Encode/decode nested data structures to/from url.Values using a predictable dotted/recursive syntax.

Install

import "github.com/aatuh/urlencoder"

Quick start

e := urlencoder.NewURLEncoder()

vals, _ := e.Encode(map[string]any{
  "user": map[string]any{
    "id":   1,
    "name": "Ada",
  },
  "tags": []string{"a", "b"},
})
// user.id=1&user.name=Ada&tags[0]=a&tags[1]=b

m, _ := e.Decode(vals)
// m["user"].(map[string]any)["name"] == "Ada"

Rules

  • Keys: a, a.b, a[0], a.mapKey.
  • Structs require json tags for field names; embedded fields are inlined.
  • Maps must have string keys.
  • Pointers/interfaces are dereferenced when non‑nil.

Notes

  • Guardrails: max recursion depth and slice size, plus basic index validation.
  • Decoding uses an internal sparse slice helper and returns regular slices.

About

URL encoding/decoding helpers for Go. Encode and decode query parameters into map[string]any or structs, with sensible handling for multi-value fields.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages