我如何继续追加数据? 我有这个:
{
"13232": [
"2012952"
]
}
我想添加另一个对象,例如:
{
"13232": [
"2012952"
],
"19213": [
"2016086"
]
}
这是我使用的代码:
JArray array = new JArray();
array.Add(Itemid);
JObject o = new JObject();
o[Userid] = array;
string json = o.ToString(Formatting.Indented);
//i know this keeps appending text but how would i append it inside the { and }?
File.AppendAllText("E:/media.json", json);
我真的不知道如何继续添加它,但也许其他人有?
答案 0 :(得分:5)
您将无法使用文件追加操作来执行此操作。文件追加操作只能添加文本到最后,它们不能在中间的某个位置插入文本。这使得无法使用file-append来保持JSON有效。
我有两个选择:
答案 1 :(得分:1)
我建议您使用Newtonsoft Json lib,作为nuget包提供。
您可以创建一个模型类来表示json节点,然后您可以将Json反序列化为该模型,并在末尾构建一个包含新元素的数组,然后将其重新序列化为json。 / p>
请查看此MSDN页面:https://msdn.microsoft.com/en-us/library/bb412179(v=vs.110).aspx
修改:Actual NewtonSoft Documentation
步骤:1 Deserialize the collection
2:一个带有listName.Add(className);
的新类实例答案 2 :(得分:0)
最安全的方法是read-update-rewrite(适用于JSON和XML格式,因为它们不支持附加)。
下一个选项如果您可以使用无效的JSON,只需将JSON片段与您拥有的代码连接起来,而不是使用SupportMultipleContent
中的JsonReader
来读取片段Read Multiple Fragments With JsonReader
如果这些方法不起作用并且您的格式已修复 - 找到文件中最后]
的位置,请在那里搜索流并编写新的数组元素并附加]}
。