2016-04-03 19 views
0

我有兩維JSON數組。我可以從第一維數據[「維-1」]中獲取數據,但是我無法從第二維獲取數據,如:data [「dimension-1」] [「dimension-2」]。從數組的第二維獲取單行的正確方法是什麼?Node.js從2維JSON數組中取出行

+0

向我們展示你的JSON數組:) –

+0

絕對你應該展示你的一個因爲data [「dimension-1」]訪問屬性而不是數組 - 所以我的回答可能浪費時間。 – chriskelly

+0

這是我的JSON:http://pastebin.com/BGxK4f39我想進入id屬性的值 –

回答

1

數據[ 「維-1」] [ 「維-2」] - 似乎是相當的對象 - 因此它應該看起來像:

var data = { 
    "dimension-1" : { 
    "dimension-2" : 'value' 
    } 
} 

data["dimension-1"]["dimension-2"] // will display 'value' 

,然後用自己的方式就OK了。

,但如果它是一個數組

var data =[[1,2], [3,4]] 

那麼應該訪問它像(索引是數字 - 而不是字符串或任何其他):

data[0][1] // will display 2 
1

2維JSON數組是這樣的:

​​

假設你想在第二列訪問的最後一列。即「f」,那麼你需要通過號碼而不是姓名來訪問它。即:

data[1][2]

編輯:

Stictly說,我原來的答案是正確的。您的二維數組可能會被索引訪問。

然而,知道你的數據的格式,現在,我會建議之一:

使用庫(如lodash)給您帶來簡單和表達方式來查詢數據

或創建自己的功能。例如:

var category = getCategory(x.data, 1525, 170); 

function getCategory(data, id, catId) { 
    return data 
     .filter(d => d.id === id) 
     .map(d => d.categories 
       .filter(c => c.id === catId) 
       .map(c => c.title) 
       .shift() 
     ) 
     .shift() 
} 

祝你好運!

1

您有那些屬性的對象也是數組或對象的混合體。如果您試圖提取數據屬性(它是一個數組)的ID,那麼您將需要選擇該屬性,輸入數組(第一項爲0),該數組返回另一個對象。然後,只需選擇屬性。

你需要這樣的東西在你的使用情況如下: -

objectName.data[0].id 

objectName["data"][0]["id"]; 

這是在這樣的數據從數據屬性中提取ID(即你提供): -

var objectName = { 
    "total_pages": 1424, 
    "total_rows": 1424, 
    "data": [ 
    { 
     "id": 1525, 
     "television_id": 1, 
     // other stuff 
     "categories": [ 
     { 
      "id": 170, 
      "title": "title" 
     }, 
     { 
      "id": 4, 
      "title": "message" 
     } 
     ] 
    } 
    ] 
}