Unmarshal JSON в тип структуры списка в списке? - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь разархивировать объект 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 Ответ

0 голосов
/ 05 июля 2018

Это зависит от того, какие типы находятся во внутренних срезах.

Произвольные типы? Используйте [][]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 
    }
}

Вы поняли ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...