Функция 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