#javascript #json #object
#javascript #json #объект
Вопрос:
если бы у меня было что-то вроде
let a = {};
let b = {pointingTo: a},
a.pointingTo = b
тогда возможно ли сохранить это каким-либо образом в файле .json?
Ответ №1:
Точно нет, потому что вы не можете преобразовать круговую структуру в строки JSON
но вот что вы можете сделать
let a = {a:1};
let b = {pointingTo: a,b:2};
a.pointingTo = JSON.parse(JSON.stringify(b));
вывод должен быть
{"a":1,"pointingTo":{"pointingTo":{"a":1},"b":2}}
затем вы можете преобразовать их в строку и сохранить в файле JSON
используя node.js
require('fs').writeFileSync('file.json', JSON.stringify(a));
использование браузера
function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
download('file.json', JSON.stringify(a))
P.S:
для отступа все, что вам нужно сделать, это JSON.stringify(a, null, 2)
Ответ №2:
Если этот javascript на стороне клиента, то вам придется хранить его в локальном хранилище, если на стороне сервера javascript, я не понимаю, почему это было бы невозможно. По сути, это очень упрощенная версия MongoDB.