2015-03-08 74 views
1

我试图把一个值的JSON使用此代码:动态更改嵌套JSON

result = {}  
result[idHour] = {}; 
result[idHour][date.minute()] = req.body.generated; 

idHour是我刚才定义的变量。 我希望这样的JSON:

{ 
"18": [ "40": 1000] 
} 

如果req.body.generated是1000,idHour是18和date.minute()是40,但我得到这个:

{ 
"18": [ null ] 
} 

我有寻找其他方式来做到这一点,但我找不到任何东西。有没有一种方法可以在嵌套的JSON中更改/添加值?

+0

您尝试访问它的方式是2D数组。你需要一个变量作为结果[idHour]的指针,然后做变量[date.minute()] = ... – ryanlutgen 2015-03-08 19:11:10

+0

@Vizkos你的意思是这样吗? '结果[idHour] = {};' '无功小时= RESULT [idHour];'' 小时[ 'minute-' + date.minute()] = req.body.generated;' 我已经尝试过这种方式,但结果是一样的。 – Ives 2015-03-08 19:14:11

+0

你是否特别需要这个数组或者你可以使用嵌套的JSON?如果没有,你可以做'result = {idhour:{date.minute():req.body.generated}};'然后用点运算符来访问它们。 – 2015-03-08 19:21:32

回答

1

是否有可能你的意思是date.getMinutes()? 这似乎这样的伎俩我...

<script> 
var idHour = "18"; 
var generated = 1000; 
var date = new Date(); 
result = {}; 
result[idHour] = {}; 
result[idHour][date.getMinutes()] = generated; 
document.write(JSON.stringify(result, null, 2)); 
</script> 

结果是: { “18”:{ “35”:1000}}

而且date.getMinutes()不返回一个字符串,所以你的JSON字符串可能希望你用toString()转换它。