У меня есть следующая структура, которая работает, как ожидалось, я получаю
данные и я смог
type Service struct {
Resources []struct {
Model struct {
Name string `json:"name"`
Credentials struct {
path string `json:"path"`
Vts struct {
user string `json:"user"`
id string `json:"id"`
address string `json:"address"`
} `json:"vts"`
} `json:"credentials"`
} `json:"model"`
} `json:"resources"`
}
service:= Service{}
err := json.Unmarshal([]byte(data), &service
Данные похожи на следующие,
service1
{
"resources": [
"model": {
"name": "cred",
"credentials": {
"path": "path in fs",
"vts": {
"user": "stephane",
"id": "123",
"address": "some address"
}
},
}
},
Теперь некоторые службы, предоставляющие дополнительные данные в vts, например, теперь у нас есть 3 поля (user / id / address), но некоторые службы (service1) могут предоставлять дополнительные данные, такие как электронная почта, secondName и т. Д. но большая проблема здесь в том, что
Мне нужно получить его по параметрам, поскольку (услуга 2) образование, зарплата и т. Д.
Сервис2
{
"resources": [
"model": {
"name": "cred",
"credentials": {
"path": "path in fs",
"vts": {
"user": "stephane",
"id": "123",
"address": "some address",
"email" : "some email",
"secondName" : "secondName"
}
},
}
},
сервис N
{
"resources": [
"model": {
"name": "cred",
"credentials": {
"path": "path in fs",
"vts": {
"user": "stephane",
"id": "123",
"address": "some address",
"salary" : "1000000"
}
},
}
},
Конечно, если я знаю заранее поля, я могу поместить их все в структуру и использовать omitempty
, но я не знаю, я просто получаю это как параметр для функции (имена новых свойств), некоторые службы могут предоставить еще 10 полей в этой структуре (которые я должен получить для функций в виде имен args[]
), но я не знаю их заранее, это должно быть динамически как-то .... есть хороший способ справиться с этим на Голанге?