Golang предоставляет несколько API для работы с JSON, в том числе для встроенных и пользовательских типов данных и обратно с использованием пакета encoding/json.
Golang преобразует объект в JSON, а данные JSON в строку с помощью методов Marshal() и Unmarshal(). Методы возвращали данные в байтовом формате, и нам нужно преобразовать возвращаемые данные в JSON или String.
В этой статье мы рассмотрим маршалинг данных и демаршалинг данных в Golang.
Маршал в Голанге
Преобразование объектов Go в JSON называется маршалингом в Golang с использованием встроенного пакета encoding/json для выполнения операций, связанных с JSON.
json.Marshal(v any) ([]byte, error)
С помощью вышеуказанной функции Marshal возвращает JSON-кодировку v, и, кроме того, мы можем преобразовать байтовые данные в строку и вернуть ее.
Unmarshal в Голанге
Это полная противоположность Маршалу. Преобразование JSON (байтовые данные) в Struct и сохранение результата в значении, на которое указывает переменная.
json.Unmarshal(data []byte, v any)
С помощью указанной выше функции Unmarshal возвращает фактическое значение данных JSON.
Теперь давайте посмотрим, как использовать вышеуказанную функцию для написания кода и внесения некоторых изменений в набор данных JSON.
Рассмотрим заданный набор данных: 👇🏻
{
"_id": "62b435e407bc586da8d297cb",
"index": 4,
"guid": "57a22da3-d791-4420-9245-465a34730537",
"gender": "male",
"company": "EZENT",
"email": "[email protected]",
"phone": "+1 (801) 499-2594",
"friends": [
{
"id": 0,
"name": "Dale Sexton",
"email": "[email protected]"
},
{
"id": 1,
"name": "Watkins Puckett",
"email": "[email protected]"
},
{
"id": 2,
"name": "Luann Bond",
"email": "[email protected]"
}
],
"greeting": "Hello, Barrera Jarvis! You have 8 unread messages.",
"favoriteFruit": "banana"
}
И задача состоит в том, чтобы записать код для удаления поля email поле из массива друзей.
Теперь давайте напишем код для изменения данных JSON:
Надеюсь, вам понравилась статья.
Спасибо за прочтение