javascript - 如何将分隔文本转换为 JSON
问题描述
分隔文本文件(文件名是数据)=>
01 - Rental Details Rental ID,01 - Rental Details Local Start Time,01 - Rental Details Local End Time,01 - Rental Details Bike ID,01 - Rental Details Duration In Seconds Uncapped,03 - Rental Start Station ID,03 - Rental Start Station Name,02 - Rental End Station ID,02 - Rental End Station Name,User Type,Member Gender,05 - Member Details Member Birthday Year
22178529,2019-04-01 00:02:22,2019-04-01 00:09:48,6251,446.0,81,Daley Center Plaza,56,Desplaines St & Kinzie St,,Male,1975
22178530,2019-04-01 00:03:02,2019-04-01 00:20:30,6226,"1,048.0",317,Wood St & Taylor St,59,Wabash Ave & Roosevelt Rd,Subscriber,Female,1984
转换后的 JSON 文件(文件名为 data.JSON)
{
"01 - Rental Details Rental ID": "22178529",
"01 - Rental Details Local Start Time": "2019-04-01 00:02:22",
"01 - Rental Details Local End Time": "2019-04-01 00:09:48",
"01 - Rental Details Bike ID": "6251",
"01 - Rental Details Duration In Seconds Uncapped": "446.0",
"03 - Rental Start Station ID": "81",
"03 - Rental Start Station Name": "Daley Center Plaza",
"02 - Rental End Station ID": "56",
"02 - Rental End Station Name": "Desplaines St & Kinzie St",
"User Type": "Subscriber",
"Member Gender": "Male",
"05 - Member Details Member Birthday Year": "1975",
},
{
"01 - Rental Details Rental ID": "22178529",
"01 - Rental Details Local Start Time": "2019-04-01 00:02:22",
"01 - Rental Details Local End Time": "2019-04-01 00:09:48",
"01 - Rental Details Bike ID": "6251",
"01 - Rental Details Duration In Seconds Uncapped": "446.0",
"03 - Rental Start Station ID": "81",
"03 - Rental Start Station Name": "Daley Center Plaza",
"02 - Rental End Station ID": "56",
"02 - Rental End Station Name": "Desplaines St & Kinzie St",
"User Type": "Subscriber",
"Member Gender": "Male",
"05 - Member Details Member Birthday Year": "1975",
}
解决方案
如果它是一个简单的 CSV 格式,这可能会有所帮助:
function convert(csv) {
const result = {};
const lines = csv.split('\n').map(line => line.split(','));
for (let i = 0; i < lines[0].length; i++) {
result[lines[0][i]] = lines[1][i];
}
return result;
}
PS。假设有确切的 2 行(标题和值),每行内的值以逗号分隔。
推荐阅读
- excel - Excel 计算表只需要比计算整个工作簿更长的时间
- r - read.csv 警告“引用字符串中的 EOF”以读取整个文件
- javascript - 如何指定聚焦和点击事件的顺序?
- php - 如何将虚拟机中 postgrsql 数据库中的图像显示到我的本地
- javascript - p5.js 鼠标压线动画
- java - 如何将此 if-else 简化为一个语句?
- c++ - 以非常低的资源要求强制文件复制
- unity3d - Unity列表项在高分辨率下留下了额外的空间
- excel - Excel COUNTIFS 问题
- javascript - Google Maps OverlayView:仅使 SVG 可点击