附加到Windows应用程序中的json文件

时间:2014-11-10 08:34:30

标签: c# json json.net

我使用newtonsoft在windows应用程序中创建了一个Json格式文件。代码正常工作,json正在创建。但我想将新文件追加到旧的json文件中,现在它正在替换。我的代码是

List<DeviceData> tempDate = new List<DeviceData>();
DeviceData D = new DeviceData();
D.deviceId = St_Id.ToString();
D.ansId = AnswerStr;
tempDate.Add(D);
string ans = JsonConvert.SerializeObject(tempDate, Formatting.Indented);
System.IO.File.WriteAllText(@"E:\" + " device.json", ans);

任何人都可以提供帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

根据文档,方法writeAllText创建一个新文件,将指定的字符串写入文件,然后关闭该文件。如果目标文件已存在,则会被覆盖。

要实现您的目标,您需要检查文件是否存在

string ans = JsonConvert.SerializeObject(tempDate, Formatting.Indented);
if (File.Exists(@"E:\" + " device.json")
  File.AppendAllText(@"E:\" + " device.json", appendText);
else
  System.IO.File.WriteAllText(@"E:\" + " device.json", ans);

答案 1 :(得分:1)

使用File.AppendAllLines个文档,示例位于http://msdn.microsoft.com/en-us/library/dd383691(v=vs.110).aspx

System.IO.File.AppendAllLines(@"E:\" + " device.json", ans);

BTW:您应该考虑对文件内容进行反序列化。