Вы можете использовать эту структуру для своего типа идентификатора
type id struct {
record map[string]record
}
Редактировать
вот рабочее решение с некоторым объяснением:
, так каку вас есть многоуровневый json, вы можете разобрать его во вложенные структуры.
{
"student_name": "Daryl Jones",
"student_number": 123884,
"student_dob": "12/10/1982",
"student_email": "djones@school.ac.uk"
}
для разбора этой части json вам нужна эта структура
type record struct {
Name string `json:"student_name"`
Number uint32 `json:"student_number"`
Dob string `json:"student_dob"`
Email string `json:"student_email"`
}
поля должны быть экспортированы(начинаются с заглавной буквы) и имеют тег json, соответствующий свойствам json.
{
"record":
{
"student_name": "Daryl Jones",
"student_number": 123884,
"student_dob": "12/10/1982",
"student_email": "djones@school.ac.uk"
}
}
, чтобы эта часть работала, вам нужна вложенная структура, такая как
type id struct {
Record record
}
имя поляснова экспортируется, но так как он соответствует вашему свойству json, вам не нужен тег.
{
"394885":
{
"record":
{
"student_name": "Daryl Jones",
"student_number": 123884,
"student_dob": "12/10/1982",
"student_email": "djones@school.ac.uk"
}
}
}
, поскольку имя свойства верхнего уровня - это идентификатор студента, вы можете использовать карту вместо структуры
var records map[string]id
и убедиться, что у вас нет запятыхне допускается в спецификации JSON