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();