如何用JavaScript将#和|分隔的字符串转换为JSON
解决思路与代码实现
你可以通过拆分字符串、过滤无效项、映射为对象、转JSON这几步完成需求,具体操作如下:
拆分并过滤初始数组
用split('#')拆分原字符串后,数组第一个元素是空字符串(因为原字符串以#开头),需要先用filter剔除空项:const myString = "#101|Maria|Smith|Teacher|26000|Football #102|Albert|Sullivan|Pianist|85000|Swimming"; const userBlocks = myString.split('#').filter(block => block.trim() !== '');处理每个用户块并映射为对象
对每个用户块,用split('|')拆分成字段数组,再给每个字段做trim()(消除原字符串中可能存在的空格干扰),最后把字段对应到目标对象的属性上:const users = userBlocks.map(block => { const fields = block.split('|').map(field => field.trim()); return { id: fields[0], Name: fields[1], LastName: fields[2], Job: fields[3], Salary: fields[4], FavSport: fields[5] }; });转换为格式化的JSON
使用JSON.stringify的参数生成带缩进的美观JSON结构:const resultJSON = JSON.stringify(users, null, 4); console.log(resultJSON);
合并运行上述代码,就能得到你想要的JSON输出。如果后续遇到字段数量不一致的情况,可以添加简单的容错判断(比如检查fields长度是否符合预期)来避免报错。
内容的提问来源于stack exchange,提问作者alvaro242
相关产品推荐
相关产品推荐

