@keddad
Ученик

Как распарсить массив массивов структур в Golang?

У меня есть такая структура:
type PhotoFaceResp struct {
	Traits map[string][]string `json:"traits"`
	Probability float32 `json:"probability"`
}


Я делаю запрос к некоторому серверу, ответ - JSON из массивов массивов таких структур. Я пытаюсь сериализовать его вот так:
coreResp := make([][]PhotoFaceResp, 0, 0)

	err := json.Unmarshal(body, &coreResp)

	if err != nil {
		panic(err)
	}


Проблема в том, что когда после этого я пытаюсь итерироваться по coreResp, GoLand говорит мне что мой [][]PhotoFaceResp при итерации по нему итерирует по интам.

Т.е:

for face := range coreResp{
    // Тут face - int, а не []coreResp
}


Что я делаю не так и как это сделать правильно?
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
Правильно делать так:
for _, face := range coreResp{
    ...
}


Итератор по массиву возвращает два значения. Индекс элемента и сам элемент. Вы берете индекс, потому он у вас int.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы