【发布时间】:2020-04-20 22:51:40
【问题描述】:
我正在尝试编辑包含名为“forge”的对象(“forge”本身包含在名为“profiles”的对象中)的现有 Json 文件,并且在该对象中,我正在尝试添加另一个名为 resolution 的对象包含高度和宽度。它所属的本机应用程序可以修改和添加此元素,但我似乎只能读取、写入/创建除分辨率对象及其子对象之外的伪造对象中的所有其他对象。
但无论我在 newtonsoft 文档中阅读了多少内容,似乎都没有任何效果。这是我到目前为止所写的。请注意,此方法仅用于覆盖“伪造”对象中的所有内容,我很累添加分辨率对象,但它失败了。有人知道怎么做吗? (连接路径为json文件)
【问题讨论】:
-
我应该提一下,如果 JArray 的东西不存在,那么它运行良好并正确覆盖了 forge 对象。
-
@MickyD 那会更有用吗?我看过和阅读的许多教程都建议以这种方式进行,我不喜欢这种方式,所以我可以创建一个类来做,所以你说的是:创建一个包含所有内容的对象(类) ,然后改为 jsonObj["profiles"]["forge"] = mycreatedclass;然后序列化它?
-
能否请您edit 将您的代码和 JSON 包含为 文本 而不是屏幕截图?这里要求文字内容不要使用图片,原因见Discourage screenshots of code and/or errors和Why not upload images of code on SO when asking a question。
-
要将任意 POCO 添加到
JObject或JArray,您需要使用JToken.FromObject的一些重载对其进行序列化。例如,请参阅Could not determine JSON object type for type “Class”。但我同意在这里使用JObject似乎是一种反模式,它不仅仅是序列化一个匿名对象? -
哦,你正在阅读一些服务,没关系