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:

Надеюсь, вам понравилась статья.

Спасибо за прочтение

Линкедин | Твиттер