JSON, Глубокая копия, сериализация и десериализация

Что такое JSON?

JSON - это способ передачи данных расшифровывается как - JavaScript Object Notation, (обозначения объектов) так же используется и для хранения данных. Изначально JSON появился в js, но сейчас может использоваться практически любым языком программирования. JSON - это всего лишь набор пар ключ: значение как и в объекте, главное правило, что все строки в двойных ковычках "".

Методы JSON на практике

const person = { // представим, что этот объект нам нужно передать на сервер, на бекенд. На прямую объект мы не можем отправить
    // сервер и протоколы передачи данных нас не поймут. Поэтому нужно превратить в один из вариантов который можно транспортировать.

    name: 'Dima',
    tel: '+7263932',

    parent: {
        mom: 'IRINS',
        dad: 'OLEIG'
    }
};

у JSON есть два метода:

stringify()

stringify() - превращает объект в нужный нам формат для отправки данных.

console.log(JSON.stringify(person)); // получаем объект в строковм представлении в котором все в "" кавычках
stringify

parse()

parse() - возвращаем былой вид. Если к нам с сервера пришел файл JSON то нам нужно его обратно превратить в обычный объект

console.log(JSON.parse(JSON.stringify(person))); 
alt text

Глубокая копия объекта

С помощью JSON можно создать глубокую копию объекта. О копиях мы уже говорили.

const clone = JSON.parse(JSON.stringify(person)); // короче изменили формат объекта, а потом распарсили в переменную clone
// и получили другой объект, полностью глубокая копия
clone.parent.mom = 'ss';

console.log(clone);
console.log(person);
alt text

Сериализация и десериализация

Сериализация - означает преобразование объекта в строку.
Десериализация - это его обратная операция convert string - > object.
Если посмотреть на то, что нам пришло после метода stringify, то мы увидим, что это объект в виде строки. А потом мы его парсим методом parse из строки в объект, это и называется сериализация и десериализация.
Немного более умными словами из гугла:
Сериализация — это преобразование объекта или дерева объектов в какой-либо формат с тем, чтобы потом эти объекты можно было восстановить из этого формата. Используется, например, для сохранения состояния программы (то есть, некоторых её объектов) между запусками. Или для передачи данных между различными экземплярами программы (или различными программами), например, по сети. Главная идея состоит в том, что сериализованный формат — набор байт или строка, которую можно легко сохранить на диск или передать другому процессу или, например, по сети, в отличие от самого объекта. А значит, задача сохранения объекта/группы объектов при этом сводится к простой задаче сохранения набора байт или строки. JSON — один из популярных форматов для сериализации, он текстовый, легковесный и легко читается человеком.