2017-04-22 89 views
0

我想從服務器獲取JSON數據。我成功地發出了一個返回數據的請求,但我無法訪問收集密鑰。我打印了整個對象,並且存在關鍵字,但我不知道如何獲取它。我想獲得像"-Ki0NyOnNuPFbtkUSIgs"這樣的關鍵值,這裏是控制檯輸出和我的代碼,請幫忙嗎?angular2如何獲得json id鍵?

Object printed in the consoleHere my code

+2

你的代碼添加到帖子中,而不是作爲一個圖像 – Aravind

+1

你嘗試'數據[ 「 - Ki0NyOnNuPFbtkUSIgs」]'? –

+0

我想得到這個值「-Ki0NyOnNuPFbtkUSIgs」不是什麼內部數據[「 - Ki0NyOnNuPFbtkUSIgs」] –

回答

0

既然你只有一個鍵在你的對象,你可以使用Object.keys(row)[0]

let data = [ 
 
    {"Ki0NyOnNuPFbtkUSIgs": {date: '', desc: ''}}, 
 
    {"Ki0NyOnNuPFbtkUS123": {date: '', desc: ''}}, 
 
    {"Ki0NyOnNuPFbtkUS456": {date: '', desc: ''}} 
 
    ] 
 
    
 
    
 
    for(i = 0; i < data.length; i++) { 
 
    \t let row = data[i];  
 
    \t console.log(Object.keys(row)[0]); 
 
    }

+0

這就是它,thanx –

0

使用for.in訪問對象的鍵值,如:

var test = {jfhajsk: 'sdgfdg', '-ksdakahcsak': 'asfdwf', 1: 34, 3: 'dsgfg'} 
for(var i in test) { 
    console.log(i);//Will print jfhajsk, -ksdakahcsak, 1 and 3 
    console.log(test[i]);//Will print sdgfdg, asfdwf, 3 and dsgfg 
} 

如果你想簡單地打印指定鍵的值,只是做console.log(variable_name['-Ki0NyOnNuPFbtkUSIgs'])

+0

'loadAllPackages(){ this.http .get('https://sofiane-5a3d8.firebaseio.com/forum.json') .map((res:any)=> { return res.json ();} ) .subscribe( (數據:任何)=> { this.packageData.next(數據); 的console.log(數據) }, (ERR:任何)=> console.error (「loadAllPackages:ERROR」), ()=> console.log(「loadAllPackages:always」) ); }' –

+0

我不能這樣做在我的情況下,因爲我必須訂閱獲取數據並將它們複製 –

+0

我會爲你簡化它。在不知道密鑰是什麼或者看起來像什麼的情況下,你絕不能從這個json中檢索它。所有的休息都是無聊的工作。 – gaganshera