Naše webové aplikace používají v podstatě jen REST API (+ statický obsah) s JSONem. Bude prosím zmínka o marshallingu/unmarshallingu do JSONu? Něco, co je zmíněno (dost hustě) tady? https://blog.golang.org/json-and-go
Bude, i když je popravdě řečeno řešení v Go dosti divoké ("pere" se tady statický a silný typový systém s dynamičností JSONu). Ale pokud používáte klasické REST API s nějakým schématem (swagger?), tak to je IMHO dobře zvládnutelné.
Když se použijí tagy (nebo jak se to v Go jmenuje), tak je práce s JSONem typově bezpečná, ne? Akorát tedy prý pomalá kvůli reflexi, v Go jsem rychlost zpracování JSONu neměřil. Osobně jsem zatím vždy používal map[string]interface{} (to jste měl asi na mysli).
Ono jde pohodlně použít obě metody, mít pevnou strukturu a demarshalovat do ní nebo použí map[string] interface{} a máte plně dynamickou strukturu a JSON typy otestujete reflexí. Případně použijete kombinaci.