В языке программирования Go есть встроенная поддержка для работы с JSON-данными. Распарсить JSON вложенных структур можно, используя стандартную библиотеку encoding/json.
Первым шагом необходимо определить структуру данных, которая будет представлять ваш JSON. Структура должна иметь поля, совпадающие с полями в JSON-документе.
Пример структуры JSON и соответствующей ей Go-структуры:
type Person struct { Name string `json:"name"` Age int `json:"age"` Address Address `json:"address"` } type Address struct { Street string `json:"street"` City string `json:"city"` Country string `json:"country"` }
Далее, вы можете использовать функцию json.Unmarshal для распарсинга JSON-строки в Go-структуру:
jsonString := `{ "name": "John Doe", "age": 30, "address": { "street": "123 Main St", "city": "New York", "country": "USA" } }` var person Person err := json.Unmarshal([]byte(jsonString), &person) if err != nil { // Обработка ошибки }
После вызова Unmarshal, поля структуры будут заполнены соответствующими значениями из JSON-строки. Вы можете получить доступ к этим значениям, обращаясь к полям структуры:
fmt.Println(person.Name) // Выведет "John Doe" fmt.Println(person.Age) // Выведет 30 fmt.Println(person.Address.Street) // Выведет "123 Main St" fmt.Println(person.Address.City) // Выведет "New York" fmt.Println(person.Address.Country) // Выведет "USA"
Важно обратить внимание, что имена полей в Go структуре должны быть публичными (начинаться с заглавной буквы), чтобы они были доступным для распаковки JSON-данных.
Также не забывайте проверять ошибку после вызова Unmarshal. Если JSON-строка не соответствует указанной структуре, или содержит неверные типы данных, Unmarshal вернет ошибку. В этом случае вам следует обработать ошибку соответствующим образом.
Вот так можно распарсить вложенные структуры JSON в языке программирования Go.