Синтаксический анализ динамического массива json

#arrays #json #go

#массивы #json #Вперед

Вопрос:

Я пытаюсь проанализировать json, чтобы перейти на язык lang, но каким-то образом объект возвращается пустым:

Объект Json:

 `{
    "names": [
        {
            "David": {
                "id": "100",
                "country": "usa",
                "group": [
                    "A1",
                    "A2"
                ]
            }
        },
        {
            "John": {
                "id": "1",
                "country": "uk",
                "group": [
                    "A1",
                    "A2"
                ]
            }
        }
    ]
}`
  

Структура GoLang:

 type Data struct {
    Names []Names `json:"names"`
}

type Names struct {
    ID      string   `json:"id"`
    Country string   `json:"country"`
    Group   []string `json:"group"`
}
  

Проблема в том, что массив содержит 2 элемента David,John, и каким-то образом он возвращает пустой объект, поскольку у анализатора возникли проблемы с извлечением строк David,John

Комментарии:

1. Привет, не могли бы вы предоставить пример кода, который десериализует этот JSON?

Ответ №1:

Неверно указано поле struct Data's Names . Это map[string]Names скорее []Names фрагмент. Так что просто измените его на:

 Names []map[string]Names `json:"names"`
  

Проверьте полный исполняемый код на https://play.golang.org/p/IDU0jANRbBn.

Комментарии:

1. Отличный его уокинг, массив строк, карта