![](/img/trans.png)
[英]Passing PHP array using json_encode method into external Javascript function gives result as 'undefined'
[英]Javascript JSON array gives no result
我有一些我想更改的代碼,因為鍵的名稱並不總是相同。
但是當我將其更改為關鍵數字時,它將不再起作用。
這是我的 object:
{
"timestamp": 1622844000,
"datetime": "2021-06-05 00:00:00",
"COMBINED COUNT": [ -3, 0, 3, -109 ]
}
這是我用來讀取數據並將其放入一些谷歌圖表的代碼:
success: function(obj) {
for (var i = 0; i < obj.length; i++) {
var temp = [JSON.stringify(obj[i]["datetime"]).substr(11,6) , Number(JSON.stringify(obj[i]["COMBINED COUNT"][0])) , "blue"];
chartdata.push(temp);
}
給出結果:
00:00,-3,blue,
但是現在當我將 datetime 更改為 1 並將 COMBINED COUNT 更改為 2 時,它將不再給出任何結果。
success: function(obj) {
for (var i = 0; i < obj.length; i++) {
var temp = [JSON.stringify(obj[i][1]).substr(11,6) , Number(JSON.stringify(obj[i][2][0])) , "blue"];
chartdata.push(temp);
}
誰能告訴我為什么會這樣?? 我必須做什么才能訪問正確的鍵值?
提前謝謝!
問題在於您如何訪問 object 的屬性。 通過查看提供的信息,我假設您有一個對象數組。
obj[i][1]
這將在i
索引處檢查具有屬性1
的 object,該屬性在 object 中不存在,但是當您嘗試像obj[i]["datetime"]
一樣訪問它時,您會得到結果為datetime
可用, COMBINED COUNT
也是如此。
經過多次搜索,我找到了答案:
因為它始終是我的 object 中的第一個和第二個鍵,所以我使用這個:
var key1 = Object.keys(obj[0])[1];
var key2 = Object.keys(obj[0])[2];
var temp = [JSON.stringify(obj[0][key1]).substr(11,6) , Number(JSON.stringify(obj[0][key2][0])) , "blue"];
在 key1 中,我得到了 object 中第一個鍵的名稱。
在 key2 中,我在 object 中獲得了我的第二個密鑰的名稱。
然后我在我的臨時部分使用那個鍵名,它給了我正確的 output。 所以現在我可以像我的鑰匙上的每個名字一樣使用它,它會回饋我需要的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.