Сериализация — это процесс преобразования структуры данных или объекта в последовательность байтов или другой формат, который можно легко сохранить или передать. Обратный процесс называется десериализацией.
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string `json:"name"`
Email string `json:"email"`
}
func main() {
// Сериализация (struct → JSON)
user := User{Name: "Alice", Email: "alice@example.com"}
data, err := json.Marshal(user)
if err != nil {
panic(err)
}
fmt.Println(string(data)) // {"name":"Alice","email":"alice@example.com"}
// Десериализация (JSON → struct)
var newUser User
err = json.Unmarshal(data, &newUser)
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", newUser) // {Name:Alice Email:alice@example.com}
}
json:"name"
) — управляют отображением полей.json.Marshaler
для кастомной сериализации).сериализация — ключевой механизм для работы с данными в распределённых системах, и понимание её принципов критично для Go-разработчика.