c# 将 json 字符串转换为 .csv
c# convert json string to .csv
我正在尝试将包含数组元素的 json 字符串转换为 .csv 文件。以下是 json 字符串格式:
{"inputFile": [["Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10"], ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"], ["K", "L", "M", "N", "O", "P", "Q", "R", "S", "T"]]}
已解决。谢谢嘿现在。
dynamic dynObj = JsonConvert.DeserializeObject(json);
var rowElements = new List<string>();
foreach (var data in dynObj.inputFile)
{
var row = new List<string>();
foreach (var dataItem in data)
{
var item = Convert.ToString(dataItem);
row.Add(item);
}
rowElements.Add( String.Join(",", row)+"\n");
}
var CSV = String.Join("",rowElements);
Console.WriteLine(CSV);
For RaJN:
Updated code to replace json file path to json string:
StringBuilder msg = new StringBuilder();
using (var p = ChoJSONReader.LoadText(jsonString)
.WithJSONPath("$.inputFile[*]")
)
{
using (var w = new ChoCSVWriter(msg))
{
w.Write(p);
}
Console.WriteLine(msg.ToString());
}
尝试使用 newtonsoft jsonparser。
如果你能得到你的 JSON 作为一个字符串..
dynamic dynObj = JsonConvert.DeserializeObject(jsonString);
string CSV = "";
foreach (var data in dynObj.inputFile)
{
List<string> row = new List<string>();
foreach(var dataItem in data)
{
row.Add(dataItem);
}
CSV+=string.Join(row, ",");
}
您将获得 1 个巨大的字符串,其中包含 CSV 格式的所有值。
让我们知道这是否是您想要的。
以下是如何使用 Cinchoo ETL
从 JSON 文件生成 CSV
StringBuilder msg = new StringBuilder();
using (var p = new ChoJSONReader("*** YOUR JSON FILE PATH ***")
.WithJSONPath("$.inputFile[*]")
)
{
using (var w = new ChoCSVWriter(msg))
{
w.Write(p);
}
Console.WriteLine(msg.ToString());
}
输出:
Column1,Column2,Column3,Column4,Column5,Column6,Column7,Column8,Column9,Column10
A,B,C,D,E,F,G,H,I,J
K,L,M,N,O,P,Q,R,S,T
更新:
string json = @"
{
""inputFile"": [
[""Column1"", ""Column2"", ""Column3"", ""Column4"", ""Column5"", ""Column6"", ""Column7"", ""Column8"", ""Column9"", ""Column10""],
[ ""A"", ""B"", ""C"", ""D"", ""E"", ""F"", ""G"", ""H"", ""I"", ""J"" ],
[ ""K"", ""L"", ""M"", ""N"", ""O"", ""P"", ""Q"", ""R"", ""S"", ""T"" ]
]
}";
StringBuilder msg = new StringBuilder();
using (var p = ChoJSONReader.LoadText(json)
.WithJSONPath("$.inputFile[*]")
)
{
using (var w = new ChoCSVWriter(msg))
{
w.Write(p);
}
Console.WriteLine(msg.ToString());
}
我正在尝试将包含数组元素的 json 字符串转换为 .csv 文件。以下是 json 字符串格式:
{"inputFile": [["Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10"], ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"], ["K", "L", "M", "N", "O", "P", "Q", "R", "S", "T"]]}
已解决。谢谢嘿现在。
dynamic dynObj = JsonConvert.DeserializeObject(json);
var rowElements = new List<string>();
foreach (var data in dynObj.inputFile)
{
var row = new List<string>();
foreach (var dataItem in data)
{
var item = Convert.ToString(dataItem);
row.Add(item);
}
rowElements.Add( String.Join(",", row)+"\n");
}
var CSV = String.Join("",rowElements);
Console.WriteLine(CSV);
For RaJN:
Updated code to replace json file path to json string:
StringBuilder msg = new StringBuilder();
using (var p = ChoJSONReader.LoadText(jsonString)
.WithJSONPath("$.inputFile[*]")
)
{
using (var w = new ChoCSVWriter(msg))
{
w.Write(p);
}
Console.WriteLine(msg.ToString());
}
尝试使用 newtonsoft jsonparser。
如果你能得到你的 JSON 作为一个字符串..
dynamic dynObj = JsonConvert.DeserializeObject(jsonString);
string CSV = "";
foreach (var data in dynObj.inputFile)
{
List<string> row = new List<string>();
foreach(var dataItem in data)
{
row.Add(dataItem);
}
CSV+=string.Join(row, ",");
}
您将获得 1 个巨大的字符串,其中包含 CSV 格式的所有值。 让我们知道这是否是您想要的。
以下是如何使用 Cinchoo ETL
从 JSON 文件生成 CSV StringBuilder msg = new StringBuilder();
using (var p = new ChoJSONReader("*** YOUR JSON FILE PATH ***")
.WithJSONPath("$.inputFile[*]")
)
{
using (var w = new ChoCSVWriter(msg))
{
w.Write(p);
}
Console.WriteLine(msg.ToString());
}
输出:
Column1,Column2,Column3,Column4,Column5,Column6,Column7,Column8,Column9,Column10
A,B,C,D,E,F,G,H,I,J
K,L,M,N,O,P,Q,R,S,T
更新:
string json = @"
{
""inputFile"": [
[""Column1"", ""Column2"", ""Column3"", ""Column4"", ""Column5"", ""Column6"", ""Column7"", ""Column8"", ""Column9"", ""Column10""],
[ ""A"", ""B"", ""C"", ""D"", ""E"", ""F"", ""G"", ""H"", ""I"", ""J"" ],
[ ""K"", ""L"", ""M"", ""N"", ""O"", ""P"", ""Q"", ""R"", ""S"", ""T"" ]
]
}";
StringBuilder msg = new StringBuilder();
using (var p = ChoJSONReader.LoadText(json)
.WithJSONPath("$.inputFile[*]")
)
{
using (var w = new ChoCSVWriter(msg))
{
w.Write(p);
}
Console.WriteLine(msg.ToString());
}