РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1132 of 1593 menu

Функция json.NewDecoder

Функция json.NewDecoder создает новый декодер, который читает JSON-данные из указанного потока ввода. В качестве параметра она принимает объект, реализующий интерфейс io.Reader, и возвращает указатель на json.Decoder. Этот декодер позволяет последовательно читать JSON-значения из потока, что особенно полезно при работе с большими объемами данных или потоковыми источниками.

Синтаксис

json.NewDecoder(reader io.Reader) *json.Decoder

Пример

Давайте декодируем JSON-строку в структуру с помощью json.NewDecoder:

package main import ( "encoding/json" "fmt" "strings" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonData := `{"name":"Alice","age":30}` reader := strings.NewReader(jsonData) decoder := json.NewDecoder(reader) var user User err := decoder.Decode(&user) if err != nil { fmt.Println("Error:", err) return } fmt.Println(user) }

Результат выполнения кода:

{Alice 30}

Пример

Давайте декодируем JSON-строку в карту (map) с помощью json.NewDecoder:

package main import ( "encoding/json" "fmt" "strings" ) func main() { jsonData := `{"name":"Alice","age":30,"active":true}` reader := strings.NewReader(jsonData) decoder := json.NewDecoder(reader) var data map[string]interface{} err := decoder.Decode(&data) if err != nil { fmt.Println("Error:", err) return } fmt.Println(data) }

Результат выполнения кода:

map[active:true age:30 name:Alice]

Пример

Давайте декодируем массив JSON-объектов с помощью json.NewDecoder:

package main import ( "encoding/json" "fmt" "strings" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonData := `[{"name":"Alice","age":30},{"name":"Bob","age":25}]` reader := strings.NewReader(jsonData) decoder := json.NewDecoder(reader) var users []User err := decoder.Decode(&users) if err != nil { fmt.Println("Error:", err) return } fmt.Println(users) }

Результат выполнения кода:

[{Alice 30} {Bob 25}]

Смотрите также

  • функцию json.NewEncoder,
    которая создает новый кодер для записи JSON в поток вывода
  • функцию json.Decoder.Decode,
    которая считывает следующее JSON-значение из потока
  • функцию json.Unmarshal,
    которая декодирует JSON в структуру из строки
  • функцию json.Decoder.Token,
    которая считывает отдельные токены JSON для потоковой обработки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить