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

Функция json.Marshal

Функция json.Marshal преобразует переданные данные в JSON-формат. В первый параметр мы передаем данные для сериализации. Функция возвращает два значения: байтовый срез с JSON-данными и ошибку. Если переданные данные не могут быть сериализованы, функция вернет ошибку.

Синтаксис

json.Marshal(v interface{}) ([]byte, error)

Пример

Давайте сериализуем простую структуру в JSON:

package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int } func main() { p := Person{Name: "John", Age: 30} res, err := json.Marshal(p) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(res)) }

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

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

Пример

Давайте сериализуем карту с данными:

package main import ( "encoding/json" "fmt" ) func main() { data := map[string]int{ "a": 1, "b": 2, "c": 3, } res, err := json.Marshal(data) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(res)) }

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

{"a":1,"b":2,"c":3}

Пример

Давайте сериализуем слайс структур:

package main import ( "encoding/json" "fmt" ) type User struct { ID int Name string } func main() { users := []User{ {ID: 1, Name: "Alice"}, {ID: 2, Name: "Bob"}, } res, err := json.Marshal(users) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(res)) }

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

[{"ID":1,"Name":"Alice"},{"ID":2,"Name":"Bob"}]

Пример

Давайте сериализуем данные с вложенной структурой:

package main import ( "encoding/json" "fmt" ) type Address struct { City string Zip string } type Employee struct { Name string Age int Address Address } func main() { e := Employee{ Name: "John", Age: 25, Address: Address{ City: "New York", Zip: "10001", }, } res, err := json.Marshal(e) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(res)) }

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

{"Name":"John","Age":25,"Address":{"City":"New York","Zip":"10001"}}

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

  • функцию json.MarshalIndent,
    которая сериализует данные в JSON с отступами
  • функцию json.Unmarshal,
    которая десериализует JSON в данные Go
  • функцию json.Valid,
    которая проверяет валидность JSON
  • функцию json.Compact,
    которая удаляет пробелы из JSON
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить