我正在尝试创建一个页面,将读取CSV文件并创建JSON文件。我需要json中的两列。CSV包含15,000-30,000行。我需要JSON最多10000行,然后我要检查JSON对一个API。结果必须从原始文件中获取值,然后将其写入包含所有列的新CSV文件。
CSV文件如下所示:
number,"surname","forename","emailAddress","taxIdentifier"
101719008,"John","smith","smith@hotmail.com","1997xxxxxxxx"
102358612,"John","doe","doe@gmail.com","1993xxxxxxxx"
我有这个代码来读取CSV文件:
protected void Button2_Click(object sender, EventArgs e)
{
string saved = (@"E:TempSpelpausMalmö2022fromNeon.csv");
using (var streamreader = new StreamReader(saved))
using (var csvReader = new CsvReader(streamreader, CultureInfo.InvariantCulture))
{
var records = csvReader.GetRecords<RocketLaunch>().ToList();
}
}
public class RocketLaunch
{
public string number { get; set; }
public string surname { get; set; }
public string forename { get; set; }
public string emailAddress { get; set; }
public string taxIdentifier { get; set; }
}
我需要在JSON中开始,然后从CSV中获得2列(编号和taxidentifier),然后在末尾添加2个字符。
当我从API得到答案后,我需要从原始列表中找到数字,并从API中获得每个数字的所有列。
任何想法?
您已经定义了CSVEntry。解析为静态的,所以调用看起来像这样:
string line = rd.ReadLine();
CSVEntry entry = CSVEntry.Parse(line);
可以将entry
添加到类型为List<CSVEntry>
的列表中。一个问题可能是您的示例数据是逗号分隔的,但您的代码是用分号分隔的。
Split
是一个让你快速开始的好方法,但我注意到有些字段被引用了,这意味着引号内的数据有可能包括逗号。多年前我写了自己的CSV解析器来处理这类事情,但我确信NuGet上一定有什么东西可以为你做这件事(寻找支持RFC 4180的东西)。