This question already has an answer here:
Is it possible to unmarshal JSON with unknown field? That field name is always different, but the structure is the same. JSON is a result of POST request.
My code:
package main
import "fmt"
import "encoding/json"
var body = []byte(`{
"unknown_field": {
"known_field_1": [[1,2,3,4,5],[10,20,30,40,50],[100,200,300,400,500]],
"known_field_2": [[11,21,31,41,51]],
"known_field_3": [[12,22,32,42,52],[14,44,34,44,54]]
}
}`)
type MyStruct struct {
MainData map[string]mData `json:"-"`
}
type mData struct {
knownField1 [][5]int `json:"known_field_1"`
knownField2 [][5]int `json:"known_field_2"`
knownField3 [][5]int `json:"known_field_3"`
}
func NewMyStruct() MyStruct {
ms := MyStruct{}
ms.MainData = make(map[string]mData)
return ms
}
func main() {
myStruct := NewMyStruct()
if err := json.Unmarshal(body, &myStruct); err != nil {
panic(err)
}
fmt.Println(myStruct) // gives {map[]}
}
</div>