2016-07-28 148 views
0

如何將json對象轉換爲逗號分隔值。這裏是我工作的腳本:將json對象轉換爲csv輸出

var fs = require('fs'); 
var json = fs.readFileSync('./file.geojson', 'utf8', function (err, data) { 
if (err) throw err; 
}); 
var obj = JSON.parse(json); 
// console.log(obj); 
var tags = [ 
obj.properties 
]; 
var output = JSON.stringify(tags); 
var headers = 'name,number'; 
console.log(output); 

的腳本給輸出

[{"route":"1"}] 

我期待的輸出是像下面一個逗號分隔值:

name,number 
route,1 

的哪一部分轉換爲CSV我是否缺少。任何人都可以請幫忙。

+2

看到這裏http://stackoverflow.com/questions/38546182/nodejs-smart-json-conversion-to-excel-file/38546420 #38546420 –

+0

我真的無法想象這沒有百萬個答案**谷歌** ... – vsync

+0

試試這個如果你有複雜的json https://github.com/zemirco/json2csv –

回答

0

具體回答你的問題,嘗試這樣的事情:

var fs = require('fs'); 
var json = fs.readFileSync('./file.geojson', 'utf8', function (err, data) { 
if (err) throw err; 
}); 
var obj = JSON.parse(json); 

var tags = [ 
obj.properties 
]; 
var headers = 'name,number'; 

var output = headers + '\r\n'; 
for (var key in tags[0]){ // changed to tags[0] 
    output += '"' + key + '",' + tags[key] + '\r\n'; 
} 
console.log(output); 
+0

我試着看着其他答案這裏並遵循大部分步驟。但由於某種原因,我無法獲得我想要的輸出。對不起:( @漢斯特勞斯我試過你的方式將其轉換爲csv這裏是我如何看到輸出爲 'name,number' '「0」,[object Object]'。 我試過使用JSON.toString (),但沒有改變輸出。我在這裏丟失了什麼? – csvb

+0

我更新了我的答案,修復了一行'for(var key in tags){'應該讀取'for(var key in tags [0]) {' –

+0

是的,現在它的工作。非常感謝大家:) – csvb