首页 > 解决方案 > 标头 JSON 将 CSV 转换为 JSON

问题描述

嗨,我想将 CSV 字符串转换为 JSON,但我认为 JSON 的标头与编码有一些问题。

这里的代码和输出:

[{...“Endere_o_4”:“”,“Endere_o_5”:“”,“Endere_o_6”:“”,“C_digo_Postal”:“1000-045”,...]}


预期结果:[{...“Endereço_4”:“”,“Endereço_5”:“”,“Endereço_6”:“”,“Código_Postal”:“1000-045”,...]}


public void MssCSVtoJSON(string ssCSV, out string ssJSON)
        {
            ssJSON = "";

            ChoCSVFileHeaderConfiguration headerConfiguration = new ChoCSVFileHeaderConfiguration(null, new System.Globalization.CultureInfo("pt-PT"));
            ChoCSVRecordConfiguration config = new ChoCSVRecordConfiguration();
            config.FileHeaderConfiguration = headerConfiguration;

            StringBuilder sb = new StringBuilder();
            using (var p = ChoCSVReader.LoadText(ssCSV,Encoding.Unicode, config, null).WithFirstLineHeader())  {
                using (var w = new ChoJSONWriter(sb))   {
                    w.Configuration.Encoding = Encoding.Unicode;
                    w.Write(p);
                }
            }
            ssJSON = sb.ToString();
            // TODO: Write implementation for action
        } // MssCSVtoJSON

标签: c#choetl

解决方案


这是已知问题,请修复并推送ChoETL 1.1.0.5-alpha2nuget 包。

这是工作样本

string csv = @"Endereço_4, Endereço_5
1, 11
2, 22";
StringBuilder output = new StringBuilder();
using (var r = ChoCSVReader.LoadText(csv).WithFirstLineHeader())
{
    using (var w = new ChoJSONWriter(output))
        w.Write(r);
}

Console.WriteLine(output);

输出:

[
 {
  "Endereço_4": "1",
  "Endereço_5": "11"
 },
 {
  "Endereço_4": "2",
  "Endereço_5": "22"
 }
]

推荐阅读