2015-06-23 35 views
1

我使用Papa Parse JavaScript Library將JSON對象數組轉換爲CSV。有沒有辦法讓CSV列以某種方式排列。如何重新排列CSV/JSON密鑰列? (Javascript)

例如;我得到的列:

OrderStatus,canOp,OpDesc,ID,訂單編號,FinishTime,計量單位,開始時間

,但想被安排爲:

ID,訂單編號,OrderStatus,開始時間,FinishTime ,canOp,OpDesc,計量單位

我之所以得到CSV作爲未排列是因爲JSON數據是這樣的:

json = [ 
{ 
    OrderStatus: "Good", 
    canOp:"True", 
    OpDesc:"Good to go", 
    ID:"100", 
    OrderNumber:"1000101", 
    FinishTime:"20:50", 
    UOM:"K", 
    StartTime:"18:10" 
}, 
... 
] 

謝謝

+1

反序列化JSON成對象的陣列,然後通過對象循環,拉動值列於你想要的順序。 – Tim

+0

做上面建議的tim。它應該以你想要的方式工作。 =) – Mox

+0

是的,認爲可能有一個圖書館已經以更高效的方式做了這些,然後吐出我自己的主圖片。 –

回答

0

爸爸解析允許在unparse()函數指定字段順序:

var csv = Papa.unparse({ 
 
    fields: ["ID", "OrderNumber", "OrderStatus", "StartTime", "FinishTime", "canOp", "OpDesc", "UOM"], 
 
    data: [{ 
 
     OrderStatus: "Good", 
 
     canOp: "True", 
 
     OpDesc: "Good to go", 
 
     ID: "100", 
 
     OrderNumber: "1000101", 
 
     FinishTime: "20:50", 
 
     UOM: "K", 
 
     StartTime: "18:10" 
 
    }, 
 
    // ... 
 
    ] 
 
}); 
 

 
console.log(csv);
<script src="http://papaparse.com/resources/js/papaparse.js"></script> 
 
<h3>See your dev console for the results</h3>

0

你不需要任何框架,從JSON轉換爲csv。

// fields in the order you want them 
var fields = ['ID', 'OrderNumber', 'OrderStatus', 'StartTime', 'FinishTime', 'canOp', 'OpDesc', 'UOM']; 
var csv = json.map(function(row){ 
    return fields.map(function(fieldName){ 
    return '"' + row[fieldName]+ '"'; 
    }); 
}); 
csv.unshift(fields); // add header column 

console.log(csv.join('\r\n')); 

輸出:

ID,OrderNumber,OrderStatus,StartTime,FinishTime,canOp,OpDesc,UOM 
"100","1000101","Good","18:10","20:50","True","Good to go","K" 
"100","1000101","Good","18:10","20:50","True","Good to go","K"