Работа с JSON в Go довольно проста и удобна, благодаря стандартной библиотеке "encoding/json".
Первым шагом для работы с JSON в Go является импорт пакета encoding/json
:
import "encoding/json"
Далее, вам необходимо определить структуру данных, с которой вы будете работать. Структура должна быть задана с использованием тегов JSON, чтобы установить связь между полями структуры и JSON-данными:
type Person struct { Name string `json:"name"` Age int `json:"age"` Email string `json:"email"` }
Для преобразования данных в формат JSON вы можете использовать функцию Marshal
из пакета "encoding/json". Эта функция принимает объект и возвращает его представление в формате JSON в виде среза байтов:
person := Person{Name: "John", Age: 30, Email: "[email protected]"} jsonData, err := json.Marshal(person) if err != nil { log.Fatal(err) } fmt.Println(string(jsonData)) // выводит: {"name":"John","age":30,"email":"[email protected]"}
Для обратного преобразования JSON-данных в структуру Go вы можете использовать функцию Unmarshal
. Эта функция принимает срез байтов и указатель на структуру, в которую будут размещаться данные:
jsonData := []byte(`{"name":"John","age":30,"email":"[email protected]"}`) var person Person err := json.Unmarshal(jsonData, &person) if err != nil { log.Fatal(err) } fmt.Println(person.Name) // выводит: John fmt.Println(person.Age) // выводит: 30 fmt.Println(person.Email) // выводит: [email protected]
Кроме того, "encoding/json" предоставляет ряд дополнительных функций для работы с JSON, таких как MarshalIndent
, который преобразует данные в форматированный JSON, NewEncoder
и NewDecoder
, которые позволяют работать с потоками данных JSON.
В целом, работа с JSON в Go с использованием стандартной библиотеки довольно проста и мощна, упрощая обработку данных в формате JSON.