我确实拥有这个代码,它可以为好的价值提供资金,但它并没有保存修改。我该怎么办?
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;
}
}
}
答案 0 :(得分:0)
尝试将修改后的对象转换回json:
string jsonOutput= JsonConvert.SerializeObject(result);
修改的: 要将字符串保存到文件,请使用以下命令:
string path = @"c:\output.json";
File.WriteAllText(path, jsonOutput);
答案 1 :(得分:0)
在Item标题和正文中修改后,你再次在json中序列化对象并将Json字符串存储在文件中。
TextWriter writer = new StreamWriter("c:\\fileName..json");
writer.WriteLine("Serialized Json string ");
writer.Flush();
writer.Close();
答案 2 :(得分:0)
您需要将更改保存回文件:
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));
答案 3 :(得分:0)
以下示例将帮助您
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);