C#:将 Json 对象附加到已经包含数据的 Json 文件

我创建了一个对象,其中包含要插入/附加到当前位于 json 文件中的数据的数据。我已经成功地将数据写入文件,但是它覆盖了原来存在的所有数据。我想要做的是将此属性附加到 json 文件,同时保留所有原始信息。


这是我到目前为止所做的:


string widthBox = Width.Text.ToString();

string heightBox = Height.Text.ToString();


string WindowSizejson = File.ReadAllText(DownloadConfigFilelocation);

dynamic WindowSizejsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(WindowSizejson);

JObject windowContent = new JObject(

    new JProperty("externalSite",

        new JObject(

            new JProperty("webLogin",

                new JObject(

                    new JProperty("window", "height=" + heightBox + ",width=" + widthBox + ",resizable,scrollbars")

                )

            )

        )

    )

);

这是我需要将上述内容附加到 json 文件中的当前数据。(由于公司安全原因模糊了值)

http://img.mukewang.com/617529d40001fff706530232.jpg

红糖糍粑
浏览 518回答 2
2回答

摇曳的蔷薇

你有两个我能想到的选择:1.将整个文件读入一个对象,添加你的对象,然后重写整个文件(性能不佳)var filePath = @"path.json";// Read existing json datavar jsonData = System.IO.File.ReadAllText(filePath);// De-serialize to object or create new listvar SomeObjectList= JsonConvert.DeserializeObject<List<T>>(jsonData)&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ?? new List<T>();// Add any new&nbsp;SomeObjectList.Add(new T(){&nbsp; &nbsp; Name = "..."});SomeObjectList.Add(new T(){&nbsp; &nbsp; Name = "..."});// edit&nbsp;var first = SomeObjectList.FirstOrDefault();first.Name = "...";// Update json data stringjsonData = JsonConvert.SerializeObject(SomeObjectList);System.IO.File.WriteAllText(filePath, jsonData);打开文件读/写,解析直到到达右花括号,然后写入剩余的数据,然后写入右花括号(不是微不足道的)

慕桂英546537

不要乱搞 JProperty,反序列化你的 json 并附加你想要的数据:JObject obj = JObject.Parse(jsontext);obj["new_prop"] = "value";//new property as per hirarchy ,same for replacing valuesstring newjson=obj.ToString();它更清洁,更易于维护。
打开App,查看更多内容
随时随地看视频慕课网APP