nodejs - csvtojson没有给出正确的json键输出
我在nodejs
中使用csvtojson
包。我写了下面的代码来转换我的csv
文件,但它不能正确转换为json
。 json
中的键没有双括号,因此我无法使用键获取值。显示nodejs - csvtojson没有给出正确的json键输出
var Converter = require("csvtojson").Converter;
var converter = new Converter({});
converter.fromFile("./file.csv", function(err,result){
console.log(result);
});
输出为如下:
[ { a: 1, b: 2, c: 3 }, { a: 3, b: 4, c: 5 } ]
因此,它提供了错误为 “Key not found!! c
”
谁能帮。
的csv
内容如下:
a,b,c
1,2,3
3,4,5
从文档,似乎输出应该是[{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4, "c": 5}]
,这是一个JSON字符串。
要访问对象的属性,您需要使用JSON.parse
进行评估。
另一个错误可能是您如何访问c
,但是您未显示该代码。
console.log
不给你JSON格式的输出,它是JavaScript对象的转储,格式化是不同的。
您需要逐行处理结果。你的结果是一个数组,每个项目都是一个包含所有字段的行。所以,你可以解决第一个行与c
键:
result[0]['c']
或者你可能要循环到该数组访问的每一行:
converter.fromFile("./file.csv", function(err,result){
for (var i in result) {
var line=result[i];
console.log("line "+i+":" + line.c);
}
});
我想要一个json响应。我有json实用程序,因此它会很容易有一个通用的实用程序,如果我有csv的json,那么我可以直接通过密钥的值。 – Abhinav
你想从JavaScript对象的JSON字符串?然后用 'console.log(JSON.stringify(result));' 事实上,这可以工作: 'JSON.parse(JSON。stringify(result));' – Franck
另外,如果你只是想要一个简单的csv到json转换器,你可以使用模块提供的命令行工具: './node_modules/.bin/csvtojson file.csv> file.json '。 并在第三方应用程序中使用'file.json'。 – Franck
您可以发布您的CSV内容吗? –
@DavidR在文章中添加了csv内容 – Abhinav
从文档中,我觉得输出应该是'[{“a”:1,“b”:2,“c”:3},{“a”: 3,“b”:4,“c”:5}]',问题在于它是一个JSON字符串,在检索密钥之前需要调用JSON.parse。另一个错误可能是你如何访问'c',但你没有显示代码。 – DrakaSAN