Хранение массива JSON в скрытом HTML-элементе - PullRequest
4 голосов
/ 07 декабря 2010

У меня есть JSON Array, который определен следующим образом:

var myItems = {
  "data": [
    { "id":1, "firstName":"bill", "lastName":"smith" },
    { "id":2, "firstName":"john", "lastName":"apple" },
    { "id":3, "firstName":"will", "lastName":"long"}
  ]
};

Мне нужно сохранить этот массив в скрытом HTML-элементе, чтобы я мог передать его своему серверному коду в строковом формате.Моя проблема, я не уверен, как это сделать.Может кто-нибудь сказать мне, как это сделать?

Спасибо!

Ответы [ 3 ]

6 голосов
/ 07 декабря 2010

По сути, вы хотите сериализовать ваш массив в json , а затем указать, где вы хотите сохранить результирующее строковое значение ..

document.getElementById('yourHiddenField').value = jsonString;
2 голосов
/ 07 декабря 2010

Используйте этот код:

document.getElementById('input').value = JSON.stringify(myItems);

См. Здесь документацию JSON :

ПРИМЕЧАНИЕ: Все браузеры Moderns предоставляют хотя бы частичную поддержку собственного анализа JSON (JSON.parse() и JSON.stringify(). Старые браузеры этого не делают. Как рекомендует Ник Крейвер , вы можете использовать для этого json2.js , и большинство фреймворков JavaScript также предоставляют поддержку (и большинство попытаются обнаружитьнативные функции или использовать их собственные версии.) Например, Dojo's Dojo.toJson() и Dojo.toJson().

1 голос
/ 07 декабря 2010

Имеется объектный литерал, но не JSON ... однако мы можем легко преобразовать его в JSON, используя JSON.stringify(), например:

document.getElementById("myHiddenInput").value = JSON.stringify(myItems);

Для поддержки старых браузеров без поддержки JSON(IE <8), <a href="http://www.json.org/js.html" rel="nofollow"> включает json2.js, и приведенный выше код все еще будет работать.

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