Вот как вы тоже можете это сделать. Подсказки по Node.js за 5 минут или меньше, часть 4
Я никогда серьезно не относился к сериализации в JavaScript, раньше это была лишь одна из тех вещей, которые я использую для мышечной памяти. Прочитав недавно, я понял, что с помощью этого простого метода JavaScript JSON.stringify()
можно сделать гораздо больше.
Что такое сериализация?
Сериализация - это в основном преобразование объекта в строку или другую более простую форму, чтобы его можно было сохранить в базе данных, передать по сети или записать в файл. Это позволяет сохранить состояние объекта, а затем иметь возможность воссоздать его при необходимости. Чтобы вернуть его в исходное состояние, это называется десериализацией.
Как и когда мы используем сериализацию?
Обычно мы используем сериализацию в нескольких случаях. Такие как:
- Перед отправкой данных в API в формате JSON их необходимо сначала сериализовать. В некоторых фреймворках это делается за кулисами.
- Перед записью в файл. Обычно для операции записи файла требуется строка для вставки данных в указанный файл. Поэтому, если мы хотим записать объект JSON или данные в файл, нам необходимо сначала преобразовать его в строку.
- При хранении данных в локальном хранилище. Локальное хранилище хранит только в строковом формате, но для того, чтобы иметь возможность хранить другие формы данных, вы должны сначала сериализовать их, а затем вы можете легко их сохранить.
Как мы сериализуем объекты?
В JavaScript мы можем легко сериализовать объекты, используя метод JSON.stringify()
. Этот метод принимает любой объект и возвращает строку, необязательно включая только указанные свойства, если указан массив заменителя. Пример:
let user = { name: "John", age: "12", gender: "male", } JSON.stringify(user) // Output // '{ "name": "John", "age": "12, "gender": "male" }'
JSON.stringify
можно использовать для сериализации не только объектов, но и массивов. Хотя под капотом массив также является объектом.
Как сериализация работает для различных типов данных
- Пустые объекты преобразуются в фигурные скобки в строке
JSON.stringify({}) // output // '{}'
- Любое логическое значение преобразуется в соответствующее строковое значение.
JSON.stringify(true) // output // 'true'
- Строка преобразуется в строку в строковом формате
JSON.stringify('foo') // '"foo"'
- Массив преобразуется в соответствующую строку
JSON.stringify(["John", 12, false]); // '["John", 12, false]'
- NaN, undefined, бесконечность преобразуется в ноль
JSON.stringify([NaN, undefined, Infinity]); // '[null,null,null]'
- Объекты конвертируются в строковую версию самого объекта
JSON.stringify({name:"John",age:12}) // '{"name":"John", "age":12}'
- Элементы массива со строковыми ключами не перечисляются, они игнорируются
let a = ["Car","Cup"] a["age"] = 12 // [0: "Car", 1: "Cup", "age": 12] JSON.stringify(a) // '["Car","Cup"]
Вы также можете найти другие типы в MDN Web Docs.
В качестве бонуса вы также можете использовать метод toJSON () для форматирования или установки возвращаемого значения при сериализации объекта.
let y = { a: 5, b: 5, toJSON(){ return this.a + this.b; } } JSON.stringify(y); // '10'
Спасибо за чтение. Вы также можете выделить несколько секунд, чтобы оставить аплодисменты, или пятьдесят 😅😅