将JSON数组存储在隐藏的HTML元素中

时间:2010-12-07 12:45:54

标签: javascript html json

我有一个JSON数组,其定义如下:

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

我需要将此数组存储在隐藏的HTML元素中,以便我可以将其传递给字符串格式的服务器端代码。我的问题,我不知道该怎么做。有人能告诉我怎么做吗?

谢谢!

3 个答案:

答案 0 :(得分:6)

基本上,你想要serialize your array into json,然后指定你想要存储结果字符串值的位置..

document.getElementById('yourHiddenField').value = jsonString;

答案 1 :(得分:2)

使用此代码:

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

请参阅此处查看JSON文档:

注意:所有现代浏览器至少部分支持本机JSON解析(JSON.parse()JSON.stringify()。较旧的浏览器不支持。As suggested by Nick Craver,你可以使用json2.js来实现这一点,并且大多数JavaScript框架也提供支持(大多数将尝试检测本机函数或使用自己的版本)。例如Dojo的Dojo.toJson()Dojo.toJson()

答案 2 :(得分:1)

你拥有的是一个对象文字,而不是JSON ......但是我们可以使用JSON.stringify()轻松地将它转换为JSON,如下所示:

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

为了支持没有本机JSON支持的旧版浏览器(IE< 8),include json2.js,上面的代码仍然有用。