2010-12-07 250 views
4

我有被定义为JSON阵列中存储JSON阵列如下:在一个隐藏的HTML元素

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

我需要此数组存储在隐藏的HTML元素,这样我可以将它传递给我的服务器 - 以字符串格式表示的代码。我的问题,我不知道如何做到这一点。有人能告诉我如何做到这一点?

谢谢!

回答

1

你有什么是对象的文字,而不是JSON可是...但是我们可以很容易地使用JSON.stringify()转换成JSON,像这样:

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

为了支持无原生JSON支持旧的浏览器(IE < 8),include json2.js和上面的代码仍然有效。

+0

....假设OP使用jQuery – Dutchie432 2010-12-07 12:50:53

+0

@ Dutchie432 - woops,误读了json标签,但方法几乎相同,但更新。 – 2010-12-07 12:52:47

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()