В 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.