如何更新对象并将其添加到动态嵌套的JSON中?

时间:2016-06-28 03:00:08

标签: c# json json.net

我有一个类,其中包含同一个类的实例列表。这可以非常嵌套,并且非常动态。这个类有其他成员,因此你可以有许多不同的情况/设置与不同类型的嵌套。

我正在尝试将其另存为JSON并在需要访问数据时反序列化。

序列化很容易,因为它成功导航嵌套并生成适当的jsons。

我在更新方面遇到了麻烦。因此,当会话开始时,我反序列化我拥有的json数据,我在需要时使用这些数据作为参考,在创建某些元素时加载保存的设置。

我的问题是我想在json中添加新条目或进行更新。

要进行更新,我可以递归循环查找项目并对其进行修改,但添加新项目是我遇到困难的地方。

在线下说几个嵌套,我添加了一个新项目,如何在适当的位置将其添加到已保存的JSON中?

我会发布我的代码,但它跨越了几个类,我需要发布很多代码。

基本上,我有一个根类,然后将相同类型的子类作为子项添加到列表和其他项目中。

如何确定新项目在嵌套中的位置?

我可以通过递归搜索每个分支找到其唯一ID来查找特定项目,并对该项目进行编辑以更新它,但不确定如何在整个嵌套中向特定位置动态添加新项目。

第一次运行时,我只是采用用户设置的设置并将其存储为JSON。

下次运行时,我会对我拥有的数据进行反序列化并存储它。

根据用户选择的内容,我将从上面的步骤加载他选择的任何项目的设置。

如果用户在嵌套的某处添加了一个新项目,我需要能够确定在哪里,然后我需要结合旧的JSON和新的JSON(ovveride旧值并添加新元素,如果有的话)然后序列化并写入文件。

我不能只序列化新数据并存储它,因为如果没有在此会话中创建旧数据,它将丢失旧数据。

这有点令人困惑,但希望我已经足够有用了。

由于

0 个答案:

没有答案