Я работаю со следующим сложным объектом:
ObjectA {
somearr: [
ObjectB {
somevar: ObjectD {...},
somecircularvar: pointer
},
ObjectC {...},
...
],
someobj: ObjectE {
someothercircularvar: pointer,
somevar: ObjectF {...}
},
someMethod: ...
}
Вышеуказанный объект имеет следующее:
- Вложенные объекты
- Круговые ссылки на многие местоположениявнутри объекта (не только основной ссылки)
- Пользовательские объекты
Основной вопрос : Как превратить это object
вstring
для хранения и как мне разобрать string
обратно в object
со всеми методами и переменными, как есть?
Вещи, которые я пробовал :
- Библиотеки
- Flatted.js
- Cyro.js
- JSONfn.js
- Поиски
- Существующие вопросы о переполнении стека (кажется, ни один из них не имел отношения к моему уродству)
- Сканирование в Google для поиска определенных пользователем объектов (они не могли справиться с циклическими)
Попробовав это, я увидел, что все "решения" имеют дело с круглыми и вложенными объектами, не определены пользователемобъекты .
Я помню, как пробовал пару других библиотек, но ни одна из них не могла работать с круглыми, вложенными и пользовательскими объектами одновременно.
Ближайшее, что я получилto следующий синтаксический анализ:
{
somearr: [
{
somevar: {...},
somecircularvar: pointer
},
{...},
...
],
someobj: {
someothercircularvar: pointer, // Circular pointer conserved
somevar: {...}
}
}
Обратите внимание, что имена моих объектов исчезли, и каждый __proto__
теперь является объектом по умолчанию (не мой объект, как определено моими локальными классами), ни один из моих методов не сохранился.
Огромное спасибо заранее человеку, который может решить эту проблему.