2015-03-08 89 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()轉換它。