Angular中ngx-CSVtoJSON解析含逗号字符串时截断问题求助
ngx-CSVtoJSON解析含逗号字段异常问题
我在Angular应用中使用ngx-CSVtoJSON组件处理CSV文件,CSV的Code列数据如下:
| Code |
|---|
| sdfgfjhgj |
| fghfgh |
| fhjghkm,khhk |
| skds;dfhcs |
| fgjhgjkl |
| hkljollop |
| guygko |
| njkhg4@@ |
| dfg;453e2 |
| sdfghjkhjk |
| iuygbikugiug |
| jhfjkgkig |
| jyhfjjhgkgk |
加载数据时,发现包含逗号的字段解析异常,得到的结果仅为:
{ "code": "\"fhjghkm" }
而期望的正确值应该是"fhjghkm,khhk"。
我的转换代码如下:
模板代码
<div class="pb-2"> <Ngx-CSVtoJSON (onConvert)="convert($event)" (onFail)="onError($event)"> </Ngx-CSVtoJSON> </div>
组件逻辑代码
convert(objArray){ this.newCodeFormData.codes = objArray.result.map(a => a[this.csvFieldName]); this.newCodeFormData.codes = this.newCodeFormData.codes.filter(x => x != '' && x != null); }
解决思路
修正CSV格式:这是最根本的解决方式。根据CSV规范,包含逗号、换行或双引号的字段必须用双引号包裹起来。你需要将CSV中含逗号的行修改为:
Code sdfgfjhgj fghfgh "fhjghkm,khhk" skds;dfhcs ...这样ngx-CSVtoJSON就能正确识别这是单个字段,不会把逗号当成字段分隔符。
配置组件解析规则:如果无法修改原始CSV文件,可以尝试调整ngx-CSVtoJSON的解析参数。查看组件文档,确认是否支持自定义
quoteChar(引号字符)或delimiter(分隔符)。比如可以尝试指定分隔符为其他未在数据中使用的字符,或者强制解析器识别未被引号包裹的逗号为字段内容,但这种方式风险较高,可能影响其他正常字段的解析。
举个配置示例(若组件支持该参数):
<Ngx-CSVtoJSON (onConvert)="convert($event)" (onFail)="onError($event)" [delimiter]="';'" > </Ngx-CSVtoJSON>
但这需要你的CSV实际使用分号作为字段分隔符,否则不适用。更稳妥的还是优先修正CSV格式。
内容的提问来源于stack exchange,提问作者Pouya Babaie
相关产品推荐
相关产品推荐

