是否有一种好方法可以覆盖特定列/字段的解析,即包含 json 对象的格式不正确的文档。流读取 json 并通过将流向前移动超过不正确/格式错误的 csv 字段,同时保存/返回 json。
最好结合使用 CsvDataReader 和 DataTable.Load
编辑 - 澄清示例:
col_a;col_b;col_c;col_json
0.0;-1;0;{"t": 1598270895, "text": "hello world" }
答案 0 :(得分:0)
我认为这行不通,但我确实发现只需设置 BadDataFound = null
即可使用最新版本的 CsvHelper 和您的示例数据。
但是,如果“文本”中包含换行符或分号,则它不起作用。
void Main()
{
var config = new CsvConfiguration(CultureInfo.InvariantCulture)
{
BadDataFound = null,
Delimiter = ";"
};
using(var reader = new StringReader("col_a;col_b;col_c;col_json\n0.0;-1;0;{\"t\": 1598270895, \"text\": \"hello world\"}"))
using(var csv = new CsvReader(reader, config))
{
using (var dr = new CsvDataReader(csv))
{
var dt = new DataTable();
dt.Load(dr);
dt.Dump();
}
}
}