c#向Json文件添加新条目
我试图将成员添加到Json文件中,但我不太明白如何将新成员添加到现有文件中c#向Json文件添加新条目,c#,json,json.net,C#,Json,Json.net,我试图将成员添加到Json文件中,但我不太明白如何将新成员添加到现有文件中 { "Members": { "Example1": { "LastOnline": "2016-05-16T12:09:04.6459345Z", "TimeUntillEx": "2016-05-16T12:09:04.6459345Z", "Paied": true }, } } 问题是“Example1”已经是用户的名称。我不知道我是否应该尝试添加更多
{
"Members": {
"Example1": {
"LastOnline": "2016-05-16T12:09:04.6459345Z",
"TimeUntillEx": "2016-05-16T12:09:04.6459345Z",
"Paied": true
},
}
}
问题是“Example1”已经是用户的名称。我不知道我是否应该尝试添加更多内容或复制现有内容并编辑复制的文本。
希望有人能帮忙
顺便说一句,我对任何错误感到非常抱歉。首先,我要做的是将
成员
属性更改为数组
,而不是对象
。然后,我会这样做:
//original json. Notice that I added '[ ]' to make it an array
var json = "{ 'Members': " +
"[ " +
"{'Example1': " +
"{ 'LastOnline': '2016-05-16T12:09:04.6459345Z', " +
"'TimeUntillEx': '2016-05-16T12:09:04.6459345Z', " +
"'Paied': true" +
"}, " +
"} " +
"] " +
"}";
//new member
var newMember = "{ 'Example2': " +
"{ 'LastOnline': '2016-12-16T12:09:04.6459345Z', " +
"'TimeUntillEx': '2016-12-16T12:09:04.6459345Z', " +
"'Paied': false" +
"}, " +
"}";
//parse the json
var obj = JObject.Parse(json);
//get members array
var array = obj.GetValue("Members") as JArray;
//parse the new member and add it to the array
var add = JObject.Parse(newMember);
array.Add(add);
//serialize the json
var output = JsonConvert.SerializeObject(obj, Formatting.Indented);
//print the results
Console.WriteLine(output);
为此,您需要
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
我认为您需要将JSON反序列化到模型中,添加条目,然后再次序列化。@failedunitest上面的答案为+1。如果您正在处理纯文本,另一个选项是为对象构建模板,并进行简单的占位符替换以添加新对象。谢谢。这正是我需要的!顺便说一句,有没有一种简单的方法来删除条目?当然可以@MarlonHaenen。首先,如果你喜欢这个答案,也别忘了投上一票。基本上是因为您使用的是
Newtonsoft.Json.Linq
。您有权像任何其他通用的C
对象一样操纵JObject
s和JArray
s。因此,如果要从数组中删除某些内容。我会这样做:array.RemoveAt(1)
//这将删除我们刚才添加的条目,或者您可以执行类似于array.remove(add)的操作代码>//这将删除我们刚才添加的对象。不过别忘了在最后序列化对象。遗憾的是,我不能升级,因为我的声誉太低了