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

Тип json.Encoder

Тип json.Encoder предоставляет возможность последовательного кодирования значений Go в JSON-формат с записью в поток вывода. В первый параметр функции json.NewEncoder передается объект, реализующий интерфейс io.Writer, в который будет записан результат. Основным методом типа является Encode, который принимает значение любого типа и записывает его JSON-представление в поток.

Синтаксис

encoder := json.NewEncoder(writer) err := encoder.Encode(v)

Пример

Давайте закодируем структуру в JSON-строку и выведем ее в буфер:

package main import ( "bytes" "encoding/json" "fmt" ) type User struct { Name string Age int } func main() { user := User{Name: "Alice", Age: 30} buf := new(bytes.Buffer) encoder := json.NewEncoder(buf) err := encoder.Encode(user) if err != nil { fmt.Println("Error:", err) return } fmt.Println(buf.String()) }

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

{"Name":"Alice","Age":30}

Пример

Закодируем слайс строк в JSON-массив, используя json.Encoder:

package main import ( "bytes" "encoding/json" "fmt" ) func main() { data := []string{"a", "b", "c", "d", "e"} buf := new(bytes.Buffer) encoder := json.NewEncoder(buf) err := encoder.Encode(data) if err != nil { fmt.Println("Error:", err) return } fmt.Println(buf.String()) }

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

["a","b","c","d","e"]

Пример

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

package main import ( "bytes" "encoding/json" "fmt" ) func main() { data := map[string]int{"one": 1, "two": 2, "three": 3} buf := new(bytes.Buffer) encoder := json.NewEncoder(buf) err := encoder.Encode(data) if err != nil { fmt.Println("Error:", err) return } fmt.Println(buf.String()) }

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

{"one":1,"three":3,"two":2}

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

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