【问题标题】:CsvHelper - GetRecords is not returning anythingCsvHelper - GetRecords 没有返回任何内容
【发布时间】:2021-03-09 22:21:40
【问题描述】:

GetRecords 没有返回任何内容。你能帮我弄清楚我错过了什么吗?

var csvContent = parseApiResponse["staffTeamCsv"].ToString();
        TextReader sr = new StringReader(csvContent);

        var csvConfiguration = new CsvConfiguration(CultureInfo.InvariantCulture)
        {
            Delimiter = "|"
        };

    var csv = new CsvReader(sr, csvConfiguration);

    var records = csv.GetRecords<StaffTeam>().ToList();
        
        var converted = JsonConvert.SerializeObject(records);
        var convertedContent = JArray.Parse(converted);`

Here's a screenshot

【问题讨论】:

    标签: c# .net-core csvhelper


    【解决方案1】:

    查看随附的屏幕截图(请在此处以文本形式发布其中的内容),您的“csvContent”变量内容如下所示:

    "Id|Name|1|nam|2|name"
    

    这不是 CSV 文件的正确格式表示。

    假设您的列标题是IdName,其余是数据,它们应该用回车分隔。所以你的字符串应该是这样的:

    var csvContent = "Id|Name\n1|nam\n2|name";
    

    你的StaffTeam 类也应该是这样的:

    public class StaffTeam
    {
        public int Id { get; set; } // Could also be string
        public string Name { get; set; }
    }
    

    基本上,您的代码很好,但您的数据却不行。

    【讨论】:

    【解决方案2】:

    虽然我的 StreamReader 正确读取了 .csv 文件,但我总是有零记录。结果我只复制了 .csv 文档的一半进行测试,这意味着我没有 csv 标头,这导致 CsvHelper 返回 0 条记录而没有错误。

    【讨论】:

      猜你喜欢
      • 2012-11-18
      • 2018-07-30
      • 2016-06-23
      • 2018-04-05
      • 1970-01-01
      • 2021-01-01
      • 2018-12-25
      • 2020-01-27
      • 2019-04-14
      相关资源
      最近更新 更多