asp.net-mvc - 为什么 CSV Helper 使用 ASP.Net MVC 只读取第一行?
问题描述
使用 CSVHelper 读取 CSV 文件时遇到问题,因为它只返回带有标题的 csv 的第一行。
我在阅读 CSV 文件时使用了此代码。
using (var reader = new StreamReader(filePath))
using (var csv = new CsvReader(reader))
{
csv.Configuration.RegisterClassMap<FundTransferMapSingle>();
var json = JsonConvert.SerializeObject(csv.GetRecords<FundTransferSingle>());
}
我为此使用了一些映射
public class FundTransferMapSingle : ClassMap<FundTransferSingle>
{
public FundTransferMapSingle()
{
Map(m => m.senderRefId).Name("senderRefId");
Map(m => m.transRequestDate).Name("transRequestDate");
Map(m => m.particulars).Name("particulars");
Map(m => m.sender).ConvertUsing(row =>
{
var senderlist = new List<Sender>
{
new Sender { name = row.GetField("senderName"),
address = new List<Address>
{
new Address {line1 = row.GetField("senderAddrLine1"),
line2 = row.GetField("senderAddrLine2"),
city = row.GetField("senderAddrCity"),
province = row.GetField("senderProvince"),
zipCode = row.GetField("senderAddrZipcode"),
country = row.GetField("senderAddrCountry")}
}
}
};
return senderlist;
});
}
这是我正在阅读的 CSV 文件
senderRefId,transRequestDate,particulars,senderName,senderAddrLine1
TRANSFER0001,2018-08-10T08:40:45.897,particulars,Name1,Address1
TRANSFER0002,2018-08-10T08:40:45.897,particulars,Name2,Address2
我通过我的变量得到结果json
。
解决方案
尝试使用 CsvReader 将数据加载到 DataTable 中:
DataTable csvTable = new DataTable();
using (CsvReader csvReader = new CsvReader(new StreamReader(stream), true))
{
csvTable.Load(csvReader);
}
然后从 DataTable 中获取 json:
using Newtonsoft.JSON;
public string DataTableToJSONWithJSONNet(DataTable table) {
string JSONString=string.Empty;
JSONString = JSONConvert.SerializeObject(table);
return JSONString;
}
推荐阅读
- ios - 登录 facebook 时 iOS 崩溃并说失去连接,但在 Android 上运行良好
- django - 在 Django ModelSerializer 中,无法将所需字段标记为 false
- excel - 如果查找值 MATCH,则在最后一个匹配值的另一个单元格中查找
- scipy - 如何解决大条件数的 Ax=b
- typo3 - Zabbix 同时查询每个项目(初始)
- javascript - 是否有一种解决方法可以在不获取 999 代码的情况下检查损坏的 LinkedIn URL?(在 G-Sheets 上使用自定义 JavaScript 函数)
- reactjs - 赛普拉斯 - 单击取决于表格上另一个复选框的值的复选框
- c++ - 程序不在 Visual Studio 上构建
- pandas - Pandas 基于特定格式的列进行分组
- javascript - 使用 getDisplayMedia 进行屏幕共享并对共享 url 更改做出反应