我怎样才能保存一个json

时间:2014-05-05 09:04:57

标签: c# 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;
        }
    }
}

4 个答案:

答案 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);