Можно распарсить json любой структуры в
json.RawMessage
var raw json.RawMessage
err := json.Unmarshal(data, &raw)
Но в конечном итоге все придет к фиксированной схеме. Ну, разве что вы парсите список - тогда из него можно будет получить слайс или что там в Go для списков используется - не объявляя явно структуру.