Введение
Ваши данные JSON соответствуют неизвестному формату, что представляет собой проблему при демаршалинге его в структуру GoLang. В этой статье вы узнаете, как эффективно справиться с этим сценарием.
Демаршалирование с помощью интерфейса карты[string]{}
Поскольку вы не знаете ключи в заранее вы можете использовать map[string]interface{} для демаршалинга полезных данных JSON. Это позволяет хранить пары ключ-значение в виде карты без указания типов значений.
var grades map[string]interface{} err := json.Unmarshal([]byte(jsonString), &grades) fmt.Println(err) fmt.Printf("%#v\n", grades)
Это выведет данные JSON в виде вложенной карты строк в интерфейсы, что может быть полезно для динамической проверки и обработки данных.
Используя тег json:"-"
Вы можете исключить определенные поля из JSON маршалинг/демаршалинг с использованием тега json:"-". Это может быть полезно, если вы хотите сохранить конфиденциальность некоторых данных или избежать циклических ссылок.
type GradeData struct { Grades map[string]interface{} `json:"-"` } var gradesData GradeData err := json.Unmarshal([]byte(jsonString), &gradesData.Grades) fmt.Println(err) fmt.Printf("%#v\n", gradesData)
В этом примере поле Grades не будет включено в JSON-представление GradesData, но его все равно можно использовать для хранения и извлечения JSON. данные.
Вывод
Используя интерфейс карты[строка]{} и json:"-" вы можете успешно демаршалировать данные JSON неизвестного формата в структуры GoLang. Этот подход позволяет элегантно обрабатывать динамические и неизвестные структуры JSON.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3