В Golang (также известном как Golang) мы можем парсить JSON-данные с помощью потрясающего пакета encoding/json, который предоставляет функции для кодирования и декодирования JSON-данных. Вот пошаговое руководство о том, как парсить JSON в Go:
Шаг 1
Создайте структуру, которая представляет структуру JSON-данных, которые вы хотите разобрать. Каждое поле в структуре должно иметь соответствующий тег поля JSON для сопоставления с ключами JSON.
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
City string `json:"city"`
Email string `json:"email"`
}
Шаг 2
Используйте функцию json.Unmarshal()
из пакета encoding/json
для разбора JSON-данных в предоставленную вами структуру Go.
err := json.Unmarshal(jsonData, &person)
Полный пример того, как парсить JSON в Go
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
City string `json:"city"`
Email string `json:"email"`
}
func main() {
jsonData := []byte(`{
"name": "Jimmy",
"age": 28,
"city": "New York",
"email": "Jimmy@example.com"
}`)
var person Person
err := json.Unmarshal(jsonData, &person)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Name:", person.Name)
fmt.Println("Age:", person.Age)
fmt.Println("City:", person.City)
fmt.Println("Email:", person.Email)
}
Онлайн-инструмент для разбора JSON-данных: Если вы хотите разобрать JSON-данные, вы можете использовать онлайн-форматтер JSON.
В приведенном выше примере мы определили структуру Person
, которая представляет JSON-данные. Поля в структуре помечены соответствующими ключами JSON. Затем мы используем json.Unmarshal()
для разбора JSON-данных и присваиваем их переменной person.
После разбора с помощью описанного выше подхода вы можете обращаться к отдельным свойствам структуры person для работы с JSON-данными и обязательно правильно обрабатывать ошибки, если что-то пойдет не так или предоставленный JSON не будет действительным в соответствии со структурой структуры.
Временная сложность json.Unmarshal
Функция json.Unmarshal
должна пройтись по каждому байту в JSON-данных, чтобы разобрать их.
Если мы обсудим временную сложность json.Unmarshal
, то она обычно составляет O(n). Где n - размер предоставленных JSON-данных.
Изучите официальную документацию пакета encoding/json и более подробную информацию о нем на pkg.go.dev.