gpt4 book ai didi

c# - 使用c#以json格式保存数据

转载 作者:行者123 更新时间:2023-12-02 20:33:10 26 4
gpt4 key购买 nike

我想以这种格式将数据保存在本地json文件中:

[
{"Name":"sdafdsf","Password":"dsfads","FirstName":"fsdf","LastName":"dsfdafas"},
{"Name":"sddafdsf","Password":"dsfadds","FirstName":"fdsdf","LastName":"dsfdafasdfs"}
]

我在 Controller 中使用它来序列化为 json 格式:

 public ActionResult Index(demo obj)
{

String json = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
string path = Server.MapPath("~/app/");
//// Write that JSON to txt file,
//var read = System.IO.File.ReadAllText(path + "output.json");
System.IO.File.WriteAllText(path + "output.json", json);
return View();
}

这是我的模型:

public class demo
{

public string Name { get; set; }
public string Password { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}

但是我在我的output.json 文件中得到的并不是正确的 JSON 格式:

{"Name":"sdafdsf","Password":"dsfads","FirstName":"fsdf","LastName":"dsfdafas"}{"Name":"adfsdsfsafdsafasdfsdfsadf","Password":"dfsaasdsa","FirstName":"safd","LastName":"dfsafads"}

如何以正确的格式保存数据?

最佳答案

这是正确的格式,如果您的意思是像数组一样需要它,那么将对象添加到数组中,然后将其序列化:

 public ActionResult Index(demo obj)
{
var array = new [] {obj};
String json = Newtonsoft.Json.JsonConvert.SerializeObject(array);
string path = Server.MapPath("~/app/");
//// Write that JSON to txt file,
//var read = System.IO.File.ReadAllText(path + "output.json");
System.IO.File.WriteAllText(path + "output.json", json);
return View();
}

或者:

var list = new List<demo>();
list.Add(obj);
String json = Newtonsoft.Json.JsonConvert.SerializeObject(list);

如果你想将数据始终保存在数组中,那么你总是需要:

  1. 从 json 文件中读取数据。
  2. 脱盐为“List”列表。
  3. 将新项目添加到此列表中。
  4. 再次序列化并将其保存到该文件中,用新文本替换所有旧文本。

像这样:

 public ActionResult Index(demo obj)
{
string path = Server.MapPath("~/app/");
var read = System.IO.File.ReadAllText(path + "output.json");
List<demo> lst = Newtonsoft.Json.JsonConvert.DeserializeObject<List<demo>>(read);
if (lst == null)
{
List<demo> _data = new List<demo>();
_data.Add(obj);
String json = Newtonsoft.Json.JsonConvert.SerializeObject(_data.ToArray());
System.IO.File.WriteAllText(path + "output.json", json);
}
else
{
lst.Add(obj);
String json = Newtonsoft.Json.JsonConvert.SerializeObject(lst);
System.IO.File.WriteAllText(path + "output.json", json);
}
return View();
}

当然,您可以通过单独的一些部分来编写更清晰的代码。

关于c# - 使用c#以json格式保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47991659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com