【问题标题】:Storing JSON Array in a Hidden HTML element将 JSON 数组存储在隐藏的 HTML 元素中
【发布时间】:2010-12-07 12:45:53
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: javascript html json


    【解决方案1】:

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

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

    【讨论】:

      【解决方案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()

      【讨论】:

      • ID 不应以 # 开头,这在旧版浏览器中无法使用...这也是 8 分钟前发布的 :)
      • @Nick:是的,我说它不会(或者我当时正在输入它)。我什至后来更新了它,为您提供 json2.js 解决方案的功劳。
      【解决方案3】:

      您拥有的是一个对象字面量,还不是 JSON...但是我们可以使用 JSON.stringify() 轻松地将其转换为 JSON,如下所示:

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

      为了支持不支持原生 JSON 的旧版浏览器 (IE include json2.js 和上面的代码仍然可以工作。

      【讨论】:

      • @Dutchie432 - 哎呀,误读了 json 标签,但方法几乎相同,已更新。
      猜你喜欢
      • 2011-03-09
      • 1970-01-01
      • 2018-10-17
      • 2011-12-04
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      相关资源
      最近更新 更多