我有一个JSON数组,其定义如下:
var myItems = {
"data": [
{ "id":1, "firstName":"bill", "lastName":"smith" },
{ "id":2, "firstName":"john", "lastName":"apple" },
{ "id":3, "firstName":"will", "lastName":"long"}
]
};
我需要将此数组存储在隐藏的HTML元素中,以便我可以将其传递给字符串格式的服务器端代码。我的问题,我不知道该怎么做。有人能告诉我怎么做吗?
谢谢!
答案 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
,上面的代码仍然有用。