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