Как я могу проанализировать строку JSON с известными и неизвестными парами ключ/значение в структуру Go? Неизвестные поля могут иметь любое имя и тип значения (строка, bool, float64 или int).
Создайте структуру с известными полями и фрагмент карт для неизвестных полей. :
type Message struct {
Known1 string `json:"known1"`
Known2 string `json:"known2"`
Unknowns []map[string]interface{}
}
Демаршалируйте строку JSON в эту структуру:
json.Unmarshal([]byte(jsonMsg), &msg)
Поле «Неизвестные» будет содержать список карт, представляющих неизвестный ключ/значение пары.
Двойная демаршалировка:
Демаршалирование и преобразование типов:
Все три решения действительны, но самым простым и элегантным является первоначальный подход на основе структур. Это позволяет избежать необходимости дополнительных демаршалов или ручных преобразований типов.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3