Unmarshal JSON в структуре типа списка в списке?
Я пытаюсь разархивировать объект JSON в структуру в Go. Вот объект JSON:
{"configuration": {
"current power source": "",
"sensor catalogue": [[], [], [], []],
"actuator catalogue": [[], [], [], []],
"active interface": ""
}
}
А вот структура в Go:
type Data struct{
Configuration struct {
CurrentPowerSource string `json: "current power source"`
SensorCatalogue //what is the type in Go for list within a list?
ActuatorCatalogue //each list within the list has a different type
ActiveInterface string `json: "active interface"`
}
}
У меня вопрос, как мне представить тип списка в списке в Go (в sensor catalogue
а также actuator catalogue
)? Когда я заполню свой объект JSON значениями, он будет выглядеть примерно так:
{"sensor catalogue": [["temperature", "humidity"], ["dht22"], [17], ["digital"]]}
Как правильно это разобрать?
1 ответ
Решение
Это зависит от того, какие типы находятся во внутренних срезах.
Произвольные типы? использование [][]interface{}
type Data struct{
Configuration struct {
CurrentPowerSource string
SensorCatalogue [][]interface{}
ActuatorCatalogue [][]interface{}
ActiveInterface string
}
}
Типы строк? использование [][]string
type Data struct{
Configuration struct {
CurrentPowerSource string
SensorCatalogue [][]string
ActuatorCatalogue [][]string
ActiveInterface string
}
}
Пользовательские типы? использование [][]CustomType
type Data struct{
Configuration struct {
CurrentPowerSource string
SensorCatalogue [][]CustomType
ActuatorCatalogue [][]CustomType
ActiveInterface string
}
}
Вы поняли идею...