如何通过为JSON提供索引来分配JSON的值。
请参阅以下代码,
var jsonVariable = [];
jsonVariable[10] = {1:10};
alert(jsonVariable.toSource());
对于上面的代码,输出是,[,,,,,,,,,{1:10}]
我期望和我需要的输出是10:{1:10}请帮我一下..。
发布于 2012-12-12 05:56:26
您使用了索引运算符([]
),它实例化一个new array
,并将索引10处的元素设置为{1: 10}
。实际上,您希望使用大括号操作符({}
)来实例化new object
并在属性10: {1:10}
上添加这样的广告:
var jsonVariable = {};
jsonVariable[10] = {1:10};
alert(jsonVariable.toSource());
将成员设置为array
,不能简单地跳过某些索引(从10开始)。所有未恢复的索引,直到你的将被强制创建。
发布于 2012-12-12 05:55:21
当您指定一个尚未像[10]
那样存在的数组索引时,将创建所有以前未填充的索引。只要穿上.push()
就行了。
var jsonVariable = [];
// A numeric property should be a string "1", though the browser will probably forgive you
// Just push the new object onto the array
jsonVariable.push({"1":10});
alert(JSON.stringify(jsonVariable));
// [{1:10}] exactly as you describe
如果您需要这个特定的对象{1:10}
出现在jsonVariable[10]
上,请将其设置为对象{}
而不是数组。
var jsonVariable = {};
jsonVariable["10"] = {"1": 10};
alert(JSON.stringify(jsonVariable));
// {"10":{"1":10}}
发布于 2012-12-12 06:03:29
我想你需要的是:
var jsonVariable = [];
for(var i=0;i<10;i++){
var temp = {};
temp[i] = {'Property' : "Data"}
jsonVariable.push(temp);
}
console.log( JSON.stringify(jsonVariable));
https://stackoverflow.com/questions/13841287
复制相似问题