2016-04-07 25 views
0

我有一個PHP API這個對象:獲取從JSON對象中的數據在JavaScript

[Object { span=1, caption="Particular", master=true}, 
Object { span=5, caption="Loan Class 1"}, 
Object { span=5, caption="Loan Class 2"}, 
Object { span=5, caption="Loan Class 3"}] 

所需的輸出將是:

## Particular Loan Class 1 Loan Class 2 Loan Class 3 ## 

我試着這樣做:

var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData; 
for (var index in arrData[0]) { 
row += index + ',';} 
row = row.slice(0, -1); 
CSV += row + '\r\n'; 

什麼樣的csv看起來像

## span caption master ## 

請幫助如何獲得標題值,如果有一個腳本,將在Excel中輸出這個,因爲需要添加一些列的合併。

+1

向我們展示JSON,而不是print_r輸出。 –

回答

1

您應該遍歷整個數組,而不僅僅是arrData[0]中的對象。而且你不應該使用for (index in object),它只是將index設置爲鍵,而不是值。然後要訪問標題,請使用.caption

for (var i = 0; i < arrData.length; i++) { 
    row += arrData[i].caption + ','; 
} 
+0

只是因爲我對這個json和javascript的東西很陌生。一直在做PHP,但是沒有必要做前端編碼的框架。謝謝@barmar正是我所需要的。 – bluerain25

0

對於標題部分可以使用此:

var row = arrData.map(function(element) { 
    return element.caption; 
}).join(' '); 

.map用於提取數組中的所有元素的標題值。結果數組值與.join連接。您可以將分隔符指定爲.join函數的參數。

以Excel文件格式寫入任何內容都不是微不足道的。除非你想要CSV格式的結果(你的代碼示例所暗示的)。爲此,你可能想看看這個answer

+0

是的,根據與客戶的討論,他們使用csv很好,但如果我們可以在excel中執行,我們可以按照樣本中的格式進行更好的處理。正如你所看到的那樣,對象中存在「跨度」。 span是該特定標題的列數 – bluerain25