所以我有一個List應用程序。我將這個List存儲在一個json文件中,當應用程序正在運行時,我對列表進行更改並將其保存爲磁盤上的.json文件。保存後Json格式破解
在用戶關閉應用程序之前,我想重置一些值。在應用程序關閉之前保存的那個json格式沒有正確保存。導致無效的json文件。
關閉:
private void btnClose_Click(object sender, RoutedEventArgs e)
{
foreach (var customer in _currentCustomers) {
customer.State = TransferState.None;
customer.NextScan = String.Empty;
}
WriteCustomerList();
this.Close();
}
WriteCustomerList方法:
try
{
using (var fileStream = new FileStream(_appConfigLocation, FileMode.OpenOrCreate, FileAccess.Write))
{
using (var br = new BinaryWriter(fileStream))
{
br.Write(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(_currentCustomers)));
}
}
}
catch (Exception ex)
{
System.Windows.MessageBox.Show("Failed to write customer list./n/n" + ex.Message, "Error!");
}
正確的JSON:
[{
"Username": "xxxxx",
"Password": "xxxx",
"RelationNumber": "xxxx",
"State": 3,
"NextScan": "",
"Interval": 1
}]
的Json閉幕後:
[{
"Username": "xxx",
"Password": "xxxx",
"RelationNumber": "xxxx",
"State": 3,
"NextScan": "",
"Interval": 1
}]26","Interval":1}]
您是否每次寫入所有數據?如果是這樣,如果文件的長度超過了正在寫入的新數據,FileMode.OpenOrCreate可能會成爲問題。你可能會想'FileMode.Truncate'。 – crashmstr
是的,我只是每次覆蓋所有的數據。 –