Go предоставляет пакет encoding/json для работы с JSON-сериализацией и десериализацией. Этот встроенный пакет делает преобразование между структурами Go и JSON-форматом простым делом.
Две главные функции — это:
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
// Marshal: структура в JSON
person := Person{Name: "John", Age: 30}
jsonData, err := json.Marshal(person)
// Unmarshal: JSON в структуру
var result Person
err := json.Unmarshal(jsonData, &result)
_json:"fieldName") чтобы контролировать маппинг полей и поведениеUnmarshal, чтобы функция смогла изменить целевую структуруjson.MarshalIndent() для читаемого форматированного выводаДля более сложных ситуаций пакет также предоставляет:
Encoder и Decoder для потоковой обработки JSON-данныхMarshalJSON() и UnmarshalJSON()omitempty чтобы исключить пустые поля из JSON-выводаТакой подход эффективен и идиоматичен для Go, делая работу с JSON надёжной и простой в поддержке.
Функция json.Marshal() требует указатель на struct в качестве аргумента и изменяет исходный struct на месте.
Новый — ещё не проверен сообществом
Вы