2016-07-28 3 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

Я действительно не могу представить, что у этого не было миллиона ответов на ** Google ** ... – 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

Я пробовал смотреть другие ответы здесь и следовало за большинством шагов. Но по какой-то причине я не смог получить результат, который мне нужен. извините :( @Hans Strausl Я попробовал свой способ конвертировать его в csv, вот как я вижу вывод как 'name, number' ' "0", [object Object] '. Я пробовал использовать JSON.toString(), но без изменений в выходе. – csvb

+0

Я обновил свой ответ исправлением, строка 'for (var key in tags) {' должен был читать 'for (ключ var в тегах [0]) {' –

+0

да, теперь его работа. Большое спасибо всем :) – csvb

Смежные вопросы