簡體   English   中英

Javascript JSON 數組沒有結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM