将Dictionary转换为CSV C的最佳方法#

时间:2014-05-10 15:27:46

标签: c# json csv export-to-csv

我正在开发一个接收大量Json的c#应用程序,我想把这个Json数据(当前在一个字符串变量中)并保存为CSV文件。

我做过一些研究,但我不知道如何解决这个问题?

编辑 -

从我之前的问题来看,似乎没有一种简单的方法可以做我想要的事情。通过进一步的研究,我发现可以从字典中创建CSV文件。

我现在有这种变量的数据:

Dictionary<string, List<string>> dictionary; 

如何将此^导出到csv? 字典中的数据在运行时也是未知的,所以我想用&#39;,&#39;但它的未知数据包含一个&#39;,&#39;在身体里。有没有办法检查并摆脱这个?

2 个答案:

答案 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());
       }