Самое главное, что вы можете сделать, это убедиться, что люди, которых вы отправляете по электронной почте, вряд ли ударят по кнопке «Спам», когда они получат вашу электронную почту. Итак, придерживайтесь следующих эмпирических правил:
Следуя этим эмпирическим правилам, вы пройдете долгий путь.
Я предлагаю это решение, которое не является совершенным и заслуживает улучшений, но оно работает, оно поможет вам начать работу.
Весь приведенный ниже код добавляется в конце функции обновления в файле dndTree.js.
console.log(root); //root contains everything you need
const getCircularReplacer = (deletePorperties) => { //func that allows a circular json to be stringified
const seen = new WeakSet();
return (key, value) => {
if (typeof value === "object" && value !== null) {
if(deletePorperties){
delete value.id; //delete all properties you don't want in your json (not very convenient but a good temporary solution)
delete value.x0;
delete value.y0;
delete value.y;
delete value.x;
delete value.depth;
delete value.size;
}
if (seen.has(value)) {
return;
}
seen.add(value);
}
return value;
};
};
var myRoot = JSON.stringify(root, getCircularReplacer(false)); //Stringify a first time to clone the root object (it's allow you to delete properties you don't want to save)
var myvar= JSON.parse(myRoot);
myvar= JSON.stringify(myvar, getCircularReplacer(true)); //Stringify a second time to delete the propeties you don't need
console.log(myvar); //You have your json in myvar
Теперь, когда у вас есть JSON, вы можете:
Скачать новый файл tree.json:
function download(content, fileName, contentType) {
var a = document.createElement("a");
var file = new Blob([content], {
type: contentType
});
a.href = URL.createObjectURL(file);
a.download = fileName;
a.click();
}
download(myvar, 'tree.json', 'text/plain');
Пример с node.js:
var fs = require('fs');
fs.writeFile("tree.json", myvar, function(err) {
if (err) {
console.log(err);
}
});
Проверьте это для получения дополнительной информации для сохранения файла: Как сохранить JSON в локальный текстовый файл