如何保存json文件
本文关键字:json 文件 保存 何保存 | 更新日期: 2023-09-27 18:01:36
我确实有这段代码,它提供了良好的价值,但它没有保存修改。我该怎么办?
using (StreamReader r = new StreamReader("C:/Files/generated.json"))
{
string json = r.ReadToEnd();
var result = JsonConvert.DeserializeObject<List<Form>>(json);
foreach (var item in result)
{
if (item.id == FormtoSave.id)
{
item.Title = FormtoSave.Title;
item.body = FormtoSave.body;
}
}
}
在修改项目标题和主体后,您将再次序列化json对象并将json字符串存储在文件中。
TextWriter writer = new StreamWriter("c:''fileName..json");
writer.WriteLine("Serialized Json string ");
writer.Flush();
writer.Close();
尝试将修改后的对象转换回json:
string jsonOutput= JsonConvert.SerializeObject(result);
编辑:为了将字符串保存到文件中,使用以下命令:
string path = @"c:'output.json";
File.WriteAllText(path, jsonOutput);
您需要将更改保存回文件:
string resultJson = String.Empty;
using (StreamReader r = new StreamReader("C:/Files/generated.json"))
{
string json = r.ReadToEnd();
var result = JsonConvert.DeserializeObject<List<Form>>(json);
foreach (var item in result)
{
if (item.id == FormtoSave.id)
{
item.Title = FormtoSave.Title;
item.body = FormtoSave.body;
}
}
resultJson = JsonConvert.SerializeObject(result);
}
File.WriteAllText("C:/Files/generated.json", resultJson);
我在using
之外进行了写入,所以文件仍然没有被StreamReader
锁定。
或不使用StreamReader
:
string path = "C:/Files/generated.json";
var result = JsonConvert.DeserializeObject<List<Form>>(File.ReadAllText(path));
foreach (var item in result)
{
if (item.id == FormtoSave.id)
{
item.Title = FormtoSave.Title;
item.body = FormtoSave.body;
}
}
File.WriteAllText(path, JsonConvert.SerializeObject(result));
下面的例子将帮助你
List<data> _data = new List<data>();
_data.Add(new data()
{
Id = 1,
SSN = 2,
Message = "A Message"
});
string json = JsonConvert.SerializeObject(_data.ToArray());
//write string to file
System.IO.File.WriteAllText (@"D:'path.txt", json);