【发布时间】:2020-06-25 19:23:50
【问题描述】:
我正在使用 ChoETL 将 JSON 转换为 CSV。目前,如果 JSON 对象中的属性是一个数组,它将被输出到 JSON 中的单独字段中。 示例:
{
"id", 1234,
"states": [
"PA",
"VA"
]
},
{
"id", 1235,
"states": [
"CA",
"DE",
"MD"
]
},
这会产生这样的 CSV(使用管道作为分隔符)
"id"|"states_0"|"states_1"|"states_2"
"1234"|"PA"|"VA"
"1235"|"CA"|"DE"|"MD"
我希望数组在单个状态字段中显示为逗号分隔的字符串
"id"|"states"
"1234"|"PA,VA"
"1235"|"CA,DE,MD"
这是我用来执行解析和转换的代码。
public static class JsonCsvConverter
{
public static string ConvertJsonToCsv(string json)
{
var csvData = new StringBuilder();
using (var jsonReader = ChoJSONReader.LoadText(json))
{
using (var csvWriter = new ChoCSVWriter(csvData).WithFirstLineHeader())
{
csvWriter.WithMaxScanRows(1000);
csvWriter.Configuration.Delimiter = "|";
csvWriter.Configuration.QuoteAllFields = true;
csvWriter.Write(jsonReader);
}
}
return csvData.ToString();
}
}
已编辑:删除了无用的测试代码
【问题讨论】: