我正在开发一个接收大量Json的c#应用程序,我想把这个Json数据(当前在一个字符串变量中)并保存为CSV文件。
我做过一些研究,但我不知道如何解决这个问题?
从我之前的问题来看,似乎没有一种简单的方法可以做我想要的事情。通过进一步的研究,我发现可以从字典中创建CSV文件。
我现在有这种变量的数据:
Dictionary<string, List<string>> dictionary;
如何将此^导出到csv? 字典中的数据在运行时也是未知的,所以我想用&#39;,&#39;但它的未知数据包含一个&#39;,&#39;在身体里。有没有办法检查并摆脱这个?
答案 0 :(得分:1)
我会使用JSON.NET将其转换为C#对象。然后,我将迭代我的C#对象并按您想要的顺序写入值。
这应该很简单:)
答案 1 :(得分:0)
我想首先让我们看一看CSV文件..
什么是csv文件?实际上它的自我解释(逗号分隔值),但只是一个CSV文件是一个文件,它携带/存储不同的值与分隔逗号(类似&#39;,&#39;或&#39 ;;&# 39;或其他)
因此,当您想要创建一个csv文件时,您可以简单地迭代您的值并将其与您决定的一些字符分开。
请注意,您的分隔符(您决定用来分隔其他值的字符)不应该在您的值中。
假设你有这首诗要存储,你想要用分隔符&#34;,#34;分开诗行。 :
When evening comes
Mails singing misses,
But Zagreb(Croatian) Radio the Lili Marleen Song
....
We, All Human-kind sweared :
we believed on Freedom,
We, sweared for the sake of Freedom!
.....
[ Attila ILHAN ]
会发生什么?你得到了意想不到的结果,因为这首诗在你的身体里有你的分隔符。
使用伪:
1-)决定数据机构没有的分隔符 2-)以字符串形式获取数据 3-)将分隔符附加到csv文件
编辑 - 在对我发表评论之后,用其他评论员的有用知识改变他的问题。评论.. 强>
PSEUDO:
string delimiter = "##";
string Path = yourCSVFilePathToSave;
bool append = true;
string HexadecimalFormat = "X";
Encoding enc = Encoding.UTF-8;
int bufferSize = 4096;
int[] intArray = {1,2,3,4,5,6,7,8,9};
using ( var writer = new StreamWriter(Path, append, enc, bufferSize))
{
foreach ( int i in intArray)
{
writer.Write (HexadecimalFormat, i);
writer.Write (HexadecimalFormat, delimiter);
}
}
PSEUDO阅读:
List<string> list = new List<string>();
using (var reader = new StreamReader(Path, enc))
{
list.AddRange(reader.ReadLine().Split(new char[] { '#', '#' }, StringSplitOptions.RemoveEmptyEntries).ToList());
}