Конвертировать объект json в строку json и использовать его функции? - PullRequest
0 голосов
/ 24 сентября 2010

У меня есть объект json с функцией:

var thread = {
    title: "my title",
    delete: function() {
        alert("deleted");
    }
};

thread.delete(); // alerted "deleted"

thread_json = JSON.encode(thread); // convert to json from object

thread_object = JSON.decode(thread_json); // convert to object from json

thread_object.delete(); // this didn't work

После того, как я преобразовал его обратно из строки json в объект, я не смог использовать функцию delete ().

Когда вы что-то конвертируете в json, функции исчезают?

Есть ли способы сохранить их в строке json?

Я использую Mootools.

1 Ответ

2 голосов
/ 24 сентября 2010

Вы получили это. Посмотрите на этот JSON.encode вывод. В представлениях JSON допускаются только простые типы данных, частично для простоты создания и частично для безопасности. (Причина, по которой мы используем что-то вроде JSON.decode вместо eval, заключается в возможности встраивания функций.)

Вам придется изменить исходный код библиотеки JSON для принятия функций или написать свой собственный, чтобы сохранить буквальное определение объекта при преобразовании в строку.

Однако подумайте о том, что вам на самом деле не нужно этого делать. Возможно, есть лучшее решение, но я не могу начать заниматься этим, не зная вашей точной ситуации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...