Объект JS для строки JSON?

Как преобразовать объект JavaScript в строку JSON в функции JavaScript? Мне нужна строка JSON для перехода на страницу JSP.

Ответ 1

В библиотеке Крокфорда есть два метода выборки (например, @Anonymous):

Строка JSON для объекта:

var obj = JSON.parse('{ "property":"value" }');
alert (obj.property);

// value

Объект для строки JSON:

var str = JSON.stringify({ "property":"value" })
alert (str);

//{ "property":"value" }

Существуют также встроенные методы для этого в большинстве основных фреймворков.

Ответ 2

Quot Crockford (http://www.json.org/js.html):

Чтобы преобразовать текст JSON в объект, вы можете использовать функцию eval(). eval() вызывает JavaScript компилятор. Поскольку JSON является надлежащим подмножество JavaScript, компилятор будет правильно анализировать текст и создать структуру объекта. Текст должны быть обернуты в parens, чтобы избежать отключение в двусмысленности в Синтаксис JavaScript.

var myObject = eval ('(' + myJSONtext + ')');

Функция eval выполняется очень быстро. Однако он может компилировать и выполнять любая программа JavaScript, так что быть проблемами безопасности. Использование eval указывается, когда источник доверен и компетентный. Гораздо безопаснее использовать анализатор JSON....

Чтобы защититься от этого, синтаксический анализатор JSON должен быть использован. Анализатор JSON будет распознавать только текст JSON, отклоняя все сценарии. В браузерах, которые предоставляют поддержка JSON, JSON-парсеры также намного быстрее, чем eval. это ожидается, что поддержка со стороны JSON будет быть включенным в следующий ECMAScript стандарт.

var myObject = JSON.parse(myJSONtext, Восстановитель);

И затем он разрабатывает прототип JSON в остальной части статьи.

Версии Gecko, используемые в Firefox 3 и 3.5, поддерживают JSON изначально (https://developer.mozilla.org/En/JSON), что может быть полезно, если ваш проект ограниченное недавним приложением на базе Gecko.


Как указано ниже, интересная часть текстового генератора (не парсер) находится в https://github.com/douglascrockford/JSON-js/blob/master/json2.js и представлена ​​с помощью

Связчик JSON движется в обратном направлении, преобразуя структуры данных JavaScript в текст JSON. JSON не поддерживает циклические структуры данных, поэтому будьте осторожны, чтобы не приводить циклические структуры к строковому JSON.

var myJSONText = JSON.stringify(myObject, replacer);

Циклические структуры данных и объекты, которые не имеют полезной сериализации, очевидно, являются единственными большими оговорками.

Ответ 3

Стоит отметить, что анонимная ссылка ( http://www.json.org/js.html) укажет вам в правильном направлении, потому что страница также содержит информацию о том, как укрепить структуру данных JavaScript в тексте JSON:

Соединитель JSON идет в обратном направлении, преобразуя структуры данных JavaScript в текст JSON.

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