我正在使用ServiceStack.Text库来读取C#中的CSV文件.
我想知道如何将CSV反序列化为CSV包含空格分隔标题的对象?
我正在使用此代码将CSV反序列化为empClass对象:
List<empClass> objList = File.ReadAllText(filePath).FromCsv<List<empClass>>();
如果我有这样的csv文件
EmpId,Employee Name,Employee Address
12,JohnSmith,123 ABC Street
而我的班级就像
public class empClass{
public string EmpId;
public string Employee_Name;
public string Employee_Address;
}
它填充EmpId但它不填充Employee Name和Employee Address,因为它包含标题中的空格.
如果有人能提供帮助,将不胜感激.
最佳答案 POCO类需要匹配其中包含空格的CSV的属性名称,将其替换为下划线并不使其匹配,在使用ServiceStack的序列化程序时也应使用公共属性.
由于属性不能包含空格,因此您可以尝试使用别名,例如:
[DataContract]
public class EmpClass
{
[DataMember]
public string EmpId { get; set; }
[DataMember(Name="Employee Name")]
public string EmployeeName { get; set; }
[DataMember(Name="Employee Address")]
public string EmployeeAddress { get; set; }
}