将数组转换成json
我有一个callback,当我打印row
得到下面的console output
。
output of row [ 'Name', 'Language' ] output of row [ 'English', 'Fr' ] output of row [ 'German', 'Gr' ] output of row [ 'France', 'London' ]
我想将上面的数组转换成一个有效的JSON, 不包括像这样的第一行 。
{ "English" : "Fr", "German" : "Gr", "France" : "London" } .on('record', function(row, index){ console.log("output of row", row); var obj = {}; row.forEach(function(column, index) { obj[row[index].trim()] = row[index].trim(); }) record.push(obj); } })
附加代码
我得到的CSV数据,我推它成一排每一次 。 下面是CSV数据和我每次读取CSV数据时获得的数组…
Language,Name Fr,English Gr,German London,France output of row [ 'Name', 'Language' ] output of row [ 'English', 'Fr' ] output of row [ 'German', 'Gr' ] output of row [ 'France', 'London' ] cvcsv() .from.string(csv) .transform( function(row){ row.unshift(row.pop()); return row; }) .on('record', function(row, index){ console.log("output of row",row)
假设你已经连续调用每次都在生成行的callback()
,你可以收集你需要的行,把它们中的每一个parsing成一个"key": "value"
对,把它添加到目的。 然后,您可以使用JSON.stringify()
方法将您的对象转换为有效的JSONstring。
根据您提供的代码,这是一个可行的解决scheme:
var rows = {}; cvcsv().from.string(csv).transform(function(row){ row.unshift(row.pop()); return row; }).on('record', function(row, index){ if (index > 0) rows[row[0]] = row[1]; }); jsonRows = JSON.stringify(rows); // Log to the console to check console.log(jsonRows);
结果会是这样的:
{"English" : "Fr", "German" : "Gr", "France" : "London"}
你可以使用JSON.stringify(yourArray)?
您可以使用shift从数组中移除第一个元素:yourArray.shift();
这里有一个简化的方法来帮助翻译数组(数组2)
function addToObject(object, row, keyIndex, valueIndex) { object[row[keyIndex]] = row[valueIndex]; } function test() { var data = [[ 'Name', 'Language' ], [ 'English', 'Fr' ], [ 'German', 'Gr' ], [ 'France', 'London' ]]; var obj = {}; for(var i = 1; i < data.length; i++) // NOTE data[i] can come from any place addToObject(obj, data[i], 0, 1); return obj; }
- 当我在Amazon S3中将Quiet设置为true以在deleteObjects()方法中启用安静模式时会发生什么?
- WebSocket连接到'ws:// localhost:3000 /'失败:连接在收到握手响应之前closures
- nock.js – 如何匹配URL中的任何参数组合
- Meteor.call(…)导致刷新页面
- JS。 属性原型奇怪的行为
- insertMany不是一个函数
- 在从nodejs查询oracle数据库时没有获取参数名称
- 创build一个node.js可写入stream,将数据代理到另一个可写入的stream,但是首先预先存储一些自己的数据
- Expressjs从variables路线