引用的字符串目前我有CSV沿着這些線路:如何解析CSV成JSON當CSV包含含有逗號
"NAME","AGE","SEX"
"FRED, JONES","45","MALE"
"SALLY, SMITH","60","FEMALE"
我使用下面的代碼將其序列化到JSON:
var linesCSV = System.IO.File.ReadAllLines(targetFile); //target file is the csv
var csv = linesCSV.Select(l => l.Split(',')).ToList();
var headers = csv[0];
var dicts = csv.Skip(1).Select(row => Enumerable.Zip(headers, row, System.Tuple.Create).ToDictionary(p => p.Item1, p => p.Item2)).ToArray();
string json = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(dicts);
jsWrtr.WriteLine(json);
這得到如下輸出:
[{
"\NAME\"" : "\"FRED\"",
"\AGE\"" : "\"JONES\"",
"\SEX\"" : "\"45\""
},
{
"\NAME\"" : "\"SALLY\"",
"\AGE\"" : "\"SMITH\"",
"\SEX\"" : "\"60\""
}]
你可以看到NAME
得到拆分和第二部分,逗號後的部分,被放入下一個字段。
這顯然是因爲逗號其間,但我的問題是我怎麼只解析CSV所以輸出如下:
[{
"NAME" : "FRED, JONES",
"AGE" : "45",
"SEX" : "MALE"
},
{
"NAME" : "SALLY, SMITH",
"AGE" : "60",
"SEX" : "FEMALE"
}]
你是用逗號分割的領域,但你應該不會用雙引號這樣做? – Veverke
您可以使用帶有自定義地圖的[CsvHelper庫](https://joshclose.github.io/CsvHelper/)。不是最簡單的解決方案,但它有一些優點。 – Fabjan