将 json 写入.txt文件



im将字符串列表序列化为json字符串,然后从json字符串生成文件,但由于某种原因,我的文件没有json的"{}"。这是我的列表序列化:

List<string> list = new List<string>();
foreach(item in Model){list.Add(item)}
var reqUsers = list;
var json = JsonConvert.SerializeObject(reqUsers);
System.IO.File.WriteAllText(@"path.txt", json);

我的路径.txt显示这个:

["ENS FRUTAS","REST","CENAS","$26.50",0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,"$26.50"]

但是我需要这样的输出:

[["ENS FRUTAS","REST","CENAS","$26.50",0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,"$26.50"]]

我的 foreach 循环来填充我的列表:

 for (int i = 1; i <= 31; i++)
                        {
                        var value = 0;
                         if (item.Fecha.Day == i) { value = item.Cantidad; costo = costo + item.Total; }
                                                    total += value;
                         }
                                                   list.Add(item.Descripcion);
                                                   list.Add(item.Pdv);
                                                   list.Add(item.Rid);
                                                   list.Add(((costo / (total + 1)).ToString("C")));
                                                    for (int i = 1; i <= 31; i++)
                                                    {
                                                        var value = 0;
                                                        list.Add(value.ToString());
                                                        int month = item.Fecha.Month;
                                                        if (item.Fecha.Day == i) { value = item.Cantidad; list.Add(value.ToString()); }
                                                       
                                                    }
                 list.Add(total.ToString());
                 list.Add((((costo / (total + 1)) * total).ToString("C")));
                        }

我希望每次我的列表完成 foreach 循环的系列时,将数据括在 []我该怎么做?

您可以将当前要序列化的对象包装在另一个集合中,以便按照您想要的方式序列化它:

var json = JsonConvert.SerializeObject(new List<object>() { list });

这应该在当前序列化文本周围放置另一个"["和"]"。

我不确定为什么你需要你的输出是这样的。但是如果你想要这样,你可以做这样的事情。

        List<List<List<string> > > arrayArrayList = new List<List<List<string>>>();
        List<List<string>> arrayList = new List<List<string>>();
        List<string> list = new List<string>();
        list.Add("Hello");
        list.Add("Hello1");
        list.Add("Hello2");            
        arrayList.Add(list);
        arrayArrayList.Add(arrayList);
        list = new List<string>();
        list.Add("bye");
        list.Add("bye1");
        list.Add("bye2");
        arrayList =  new List<List<string>>();
        arrayList.Add(list);
        arrayArrayList.Add(arrayList);
        var json = JsonConvert.SerializeObject(arrayArrayList);

在这种情况下,您的输出将被[[["Hello","Hello1","Hello2"]],[["bye","bye1","bye2"]]]

根据问题的最新更新更新了答案。

var buffer = new StringBuilder();
buffer.Append("[");
for(int i=1;i<=10;i++)
{
   buffer.Append("[");
   foreach(var item in items)
   {       
      buffer.Append("""");
      buffer.Append(item.Pro1);         
      buffer.Append("""",");
       //add other props
   }
    buffer.Append("]");
}
buffer.Append("]");
File.WriteAllText(path,buffer.ToString();

相关内容

  • 没有找到相关文章

最新更新