Поскольку объекты JavaScript состоят из атрибутов в виде пар ключ-значение, заключенных в фигурные скобки, преобразование в строку должно быть корректным, особенно если нужна возможность обратного конвертирования. Преобразование может пригодиться, когда речь идет о хранении данных в локальном хранилище или базе данных.
Существуют различные способы преобразования объекта JavaScript в строку.
JSON.stringify()
Это мощная и часто используемая функция для преобразования объекта в строку JSON.
let object = {
name: 'Иван',
age: 45,
friends: ['Петр', 'Олег']
};
JSON.stringify(object); // '{"name":"Иван","age":45,"friends":["Петр","Олег"]}'
Object.entries()
Object.entries() - это встроенная функция JavaScript, которая разбивает объект на массив из пар ключ-значение. Как следствие, мы можем перебрать такой массив и вручную преобразовать объект JavaScript в строку. С чем нужно определиться - какой разделитель будет между парами и элементами пар.
let object = {
name: 'Иван',
age: 45
};
let arrayOfArrays = Object.entries(object); // [['name', 'Иван'], ['age', 45]]
let arrayOfStrings = arrayOfArrays.map( item => item.join(':')); // ['name:Иван', 'age:45']
let string = arrayOfStrings.join(','); // 'name:Иван,age:45'
let searchParameters = '?' + Object.entries(object).map( item => item.join('=')).join('&'); // '?name=Иван&age=45'
Object.keys()
Object.keys() возвращает массив, содержащий все ключи объекта. После мы можем перебрать их с помощью цикла и сформировать строчную версию объекта.
let object = {
name: 'Иван',
age: 45
};
let arrayOfKeys = Object.keys(object); // ['name', 'age']
let string = '';
for (key of arrayOfKeys) {
string += `${key}:${object[key]},`;
};
console.log(string); // => 'name:Иван,age:45,'