【问题标题】:Convert json object to csv output [duplicate]将json对象转换为csv输出[重复]
【发布时间】:2016-07-29 04:28:16
【问题描述】:

如何将 json 对象转换为逗号分隔值。这是我正在工作的脚本:

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 的哪一部分。谁能帮忙。

【问题讨论】:

标签: javascript node.js


【解决方案1】:

要具体回答您的问题,请尝试以下操作:

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);

【讨论】:

  • 我尝试在此处查看其他答案并遵循大部分步骤。但由于某种原因,我无法得到我想要的输出。抱歉 :( @Hans Strausl 我尝试了将其转换为 csv 的方式,这是我将输出视为 name,number "0",[object Object] 的方式。我尝试使用 JSON.toString() 但输出没有变化。我错过了什么在这里?
  • 我用修复更新了我的答案,for (var key in tags){ 应该是for (var key in tags[0]){
  • 是的,现在它可以工作了。非常感谢大家:)
猜你喜欢
  • 2018-01-31
  • 1970-01-01
  • 2020-02-13
  • 2019-09-18
  • 1970-01-01
  • 2013-07-26
  • 2015-01-02
  • 1970-01-01
  • 2021-12-19
相关资源
最近更新 更多