【发布时间】:2018-04-09 04:31:06
【问题描述】:
所以我目前正在使用 csvtojson 来将 csv 文件转换为 json,并且我的代码正在返回一个未命名对象的数组。但是,我希望这些对象被命名。更具体地说,我想使用第一列中的值来命名对象。
我的 CSV 文件如下所示:
名字、餐厅、食物名称、评论、价格
Andrew,Clucky's Chicken,Chickenator,这个三明治很棒,9.99 美元
米歇尔,字节,大汉堡,汉堡做得太好了,12.99 美元
Cam,Candyland,Yummy Gummies,散装糖果的好价钱,1.75 美元
我正在使用此代码并在节点中运行它:
// require the csvtojson converter class
var Converter = require("csvtojson").Converter;
//create a new converter object
var converter = new Converter({});
//call the fromFile function which takes in the path to the csv file, as well as a callback function
converter.fromFile("./restaurants.csv", function(err,result){
// if an error has occurred, then handle it
if(err){
console.log("An error has occurred");
console.log(err);
}
// create a variable called json and store the result of the conversion
var json = result;
// log our json to verify it has worked
console.log(json);
});
返回:
[ { 'First Name': 'Andrew',
'Restaurant': 'Clucky's Chicken',
'Food Name': 'Chickenator',
'Comment': 'This sandwich is awesome',
'Price': '$9.99' },
{ 'First Name': 'Michelle',
'Restaurant': 'Bytes',
'Food Name': 'Big Burger',
'Comment': 'Burger was too well done',
'Price': '$12.99' },
{ 'First Name': 'Cam',
'Restaurant': 'Candyland',
'Food Name': 'Yummy Gummies',
'Comment': 'Good price for bulk candy',
'Price': '$1.75' } ]
但我希望它返回更多类似于以下内容的内容:
[ Andrew : { 'Restaurant': 'Clucky's Chicken',
'Food Name': 'Chickenator',
'Comment': 'This sandwich is awesome',
'Price': '$9.99' },
Michelle : { 'Restaurant': 'Bytes',
'Food Name': 'Big Burger',
'Comment': 'Burger was too well done',
'Price': '$12.99' },
Cam : { 'Restaurant': 'Candyland',
'Food Name': 'Yummy Gummies',
'Comment': 'Good price for bulk candy',
'Price': '$1.75' } ]
有人对我如何做到这一点有任何建议吗?
【问题讨论】:
-
外括号应该是卷曲的,而不是方形的。 Square 表示一个数组,它(通常)没有像
property: "value"这样的命名属性。 Curly 是一个对象,更适合您的需求。 -
哦,好的。在那种情况下,也许我根本不需要命名对象。谢谢你告诉我!
-
不客气。并且您不需要命名对象本身,具有名称作为键和值作为对象的对象的更多属性。
-
我不确定我是否完全理解其中的区别......
-
我接受了 Stanley Cheung 的答案并稍加修改以使花括号出现在外面,所以我将其改为 var itemArray = [ ],而不是 var items = { }... 我想我只是不知道命名对象和“以名称为键、值为对象的对象的属性”有什么区别
标签: javascript json node.js csv