我正在我的asp.net web API项目中使用JSON/CSV文件,并尝试使用CSVHelper和ServiceStack.Text库,但无法使其工作。
包含数组的JSON文件是动态的,可能有任意数量的字段。
我使用streamreader读取文件,然后需要将其转换为CSV文件,以便最终用户可以下载它。
示例文件文本
[{"COLUMN1":"a","COLUMN2":"b","COLUMN3":"c","COLUMN4":"d","COLUMN5":"e"},
{"COLUMN1":"a","COLUMN2":"b","COLUMN3":"c","COLUMN4":"d","COLUMN5":"e"}]
将JSON转为CSV
public static string jsonStringToCSV(string content)
{
var jsonContent = (JArray)JsonConvert.DeserializeObject(content);
var csv = ServiceStack.Text.CsvSerializer.SerializeToCsv(jsonContent);
return csv;
}
这不会给我提供CSV数据
然后一些文件的分隔符可能是逗号或制表符,我想利用CSVHelper将CSV字符串动态转换为IEnumerable。
public static IEnumerable StringToList(string data, string delimiter, bool HasHeader)
{
using (var csv = new CsvReader(new StringReader(data)))
{
csv.Configuration.SkipEmptyRecords = true;
csv.Configuration.HasHeaderRecord = HasHeader;
csv.Configuration.Delimiter = delimiter;
var records = csv.GetRecords();
return records;
}
}