我正在创建像这样的JS对象
var eleDetailsTop = new Array();
var j = 0;
var id = "ele"+j;
eleDetailsTop[id] = {id: id, size : "40%", sizeLabel : 12, type : "image", title : "Image"};
现在,我试图将此对象转换为JSON ...
var fields = JSON.stringify(eleDetailsTop);
所以,我的问题是,这只会给出一个空的结果。
以下是我使用FireBug调试时得到的内容
正如您所看到的,其中有另一个名为wrappedJSobject
的对象。如果您在其中进行了检查,则可以看到另一个wrappedJSobject
,如此...
这是为什么?为什么这很奇怪?
答案 0 :(得分:1)
您正在创建一个数组并为其分配字母数字属性。 试试这个:
var j = 0;
var id = "ele"+j;
eleDetailsTop[j] = {id: id, size : "40%", sizeLabel : 12, type : "image", title : "Image"};
编辑:如果你想使用id作为属性 - 将eleDetailsTop定义为对象:
var eleDetailsTop = {};
答案 1 :(得分:1)
如果你这样做:
var eleDetailsTop = {};
然后你可以分配像
这样的属性eleDetailsTop[id] = {}
但是,如果你真的需要数组...这是行不通的,因为技术上没有js中的关联数组(它们是对象)。
<script>
var test = {};
test['iam1234'] = {};
console.log(test);
</script>