2014-05-05 52 views
-2

我確實有這個代碼,它資助了很好的價值,但它不保存修改。我能做什麼 ?我該如何保存一個json

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

你可能想將結果轉換回JSON –

+0

是的,我想保存修改我做的json文件 – user3542017

+0

@ user3542017:你有什麼試圖保存修改? – Flater

回答

0

試試這個你修改的對象轉換回JSON:

string jsonOutput= JsonConvert.SerializeObject(result); 

編輯: 爲了將字符串保存到文件中使用這樣的:

string path = @"c:\output.json"; 
File.WriteAllText(path, jsonOutput); 
+0

我不修改json文件... – user3542017

+0

然後使用File.WriteAllText編寫json ..我將修改.. –

0

在項目標題和正文中進行修改後,您將再次在json中序列化對象並將Json字符串存儲在文件中。

TextWriter writer = new StreamWriter("c:\\fileName..json"); 
     writer.WriteLine("Serialized Json string "); 
     writer.Flush(); 
     writer.Close(); 
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)); 
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); 
相關問題