линия

Главная

воскресенье, 12 марта 2017 г.

Cordova: JavaScript - Uncaught TypeError: Converting circular structure to JSON

Web приложение бодро запустилось на браузере. Все работало , как ни странно, и не могло радовать красные от бессонницы глаза программиста. Изученная улыбка нарисовалась на измученном лице разработчика. Проверив подключен ли смартфон к компу, Программист нажал на сборку проекта. Пока проект собирается в апк файл Парень откинулся на спинку кресла и закрыл глаза... Но он еще не знал что впереди его ждут ужасные баги....

Ошибка была вот такой: Converting circular structure to JSON.
Что же это означает? Коротко говоря внутри обьекта есть ссылка на самого себя. Причем, в GoogleCrome приложение работает без ошибок, а вот на телефоне выскакивает такая ошибка.
Менять что то в самом обьекте было бы не гуманно по отношению к себе и поэтому начал искать ответы в просторах инета. Долго искал, пробовал разные методы, но все было тщетно. И когда уже руки совсем опустились нашел все таки интересное решение.
И вот оно:

//lc.getSnapshot() - возвращает сложные обьект
JSON.stringify(DropClasses(lc.getSnapshot()));

function DropClasses(object)
{
    for (var param in object)
    {
        if (object[param] instanceof jQuery || object[param] instanceof HTMLElement)
            object[param] = null;
        else if (typeof object[param] == 'object')
            DropClasses(object[param]);
    }
    return object;
}

Комментариев нет:

Отправить комментарий