Javascript 如何将分隔文本转换为JSON

Javascript 如何将分隔文本转换为JSON,javascript,json,Javascript,Json,分隔文本文件名为data=> 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 N

分隔文本文件名为data=>

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-租赁详细信息租赁ID:22178529, 01-租赁详情当地开始时间:2019-04-01 00:02:22, 01-租赁详情当地结束时间:2019-04-01 00:09:48, 01-租赁详细信息自行车ID:6251, 01-租赁详细信息持续时间(秒)无上限:446.0, 03-租赁起点站ID:81, 03-租赁起点站名称:戴利中心广场, 02-出租终点站ID:56, 02-出租终点站名称:Desplaines St&Kinzie St, 用户类型:订户, 成员性别:男, 05-会员详情会员生日:1975年, }, { 01-租赁详细信息租赁ID:22178529, 01-租赁详情当地开始时间:2019-04-01 00:02:22, 01-租赁详情当地结束时间:2019-04-01 00:09:48, 01-租赁详细信息自行车ID:6251, 01-租赁详细信息持续时间(秒)无上限:446.0, 03-租赁起点站ID:81, 03-租赁起点站名称:戴利中心广场, 02-出租终点站ID:56, 02-出租终点站名称:Desplaines St&Kinzie St, 用户类型:订户, 成员性别:男, 05-会员详情会员生日:1975年, }
如果是简单的CSV格式,这可能会有所帮助:

函数转换{ const result={}; 常量行=csv.split'\n'.mapline=>line.split','; 对于设i=0;i<线[0]。长度;i++{ 结果[行[0][i]]=行[1][i]; } 返回结果; } 注:假设有两行标题和值,每行中的值用逗号分隔。

在换行符上拆分行 匹配带引号的字符串、普通字符串或逗号且无空白字符串 将标题第一行拼接为键

将行映射到对象映射

text=`01-租赁详细信息租赁ID,01-租赁详细信息本地开始时间,01-租赁详细信息本地结束时间,01-租赁详细信息自行车ID,01-租赁详细信息持续时间(以秒为单位),03-租赁起点站ID,03-租赁起点站名称,02-租赁终点站ID,02-租赁终点站名称,用户类型,成员性别,05-会员详情会员生日年 221785292019-04-01 00:02:2212019-04-01 00:09:486251446.0,81,戴利中心广场,56号,德斯普莱恩斯街和肯齐街,男,1975年 221785302019-04-01 00:03:022019-04-01 00:20:306226,1048.0317,沃巴什大道和罗斯福路59号伍德街和泰勒街,订户,女性,1984年` 常量行=text.split/\r?\n/g .mapx=> […x.matchAll/?:[^]+?|[^,]+?|,?=,|$/g] .map[,quoted,x,]=>quoted | | x | |//提取字符串或空白 const keys=rows.shift//提取第一行键 console.log rows.maprow=>Object.fromEntries row.mapv,i=>[键[i],v]
这回答了你的问题吗?我看到有两行以上的值,你需要得到一个列表。我相信上面的代码很容易扩展。是的,我们希望在列表中转换JSON。你能在所有对象中切分日期,如01-租赁详细信息本地结束时间:2019-04-01吗