经过大量研究,我一直无法找到任何好的方法来读取json文件,存储其值,然后向其添加新的对象/数组。JSON看起来像
{
"Skywars": [
{
"Solo Normal": [
{
"000001": [
{
"Kills": 213,
"Deaths": 117
}
]
}
],
"Solo Insane": [
{
"000001": [
{
"Kills": 10790,
"Deaths": 7184
}
]
}
]
}
],"Bedwars": [
{
"Solo": [
{
"000001": [
{
"Kills": 0,
"Deaths": 0
}
]
}
],
"Duos": [
{
"000001": [
{
"Kills": 0,
"Deaths": 0
}
]
}
]
}
]
}
例如,我打算将其改成“ Skywars.Solo Normal”,“ Skywars.Solo Insane”,“ Bedwars.Solo”,“ Bedwars.Duos”,然后在“ 000002”后面附加新的杀死和死亡值。由于某些原因,即使经过数小时的搜索,我仍然找不到如何读取杀戮和死亡的信息(我已经很接近了,使用public Skywars[] Skywars { get;set; }
。问题是大多数示例都使用了看起来像{"user":[{"id":1,"logins":0}]}
的JSON文件],只有很少的数组和子数组。
对于任何愿意回答的人,请不要给我代码,不要解释代码的完成方式(我是否需要创建自己的解析器等),或者是否已有任何帖子/链接可以回答我的问题问题(即使我找不到方法)。
注释-
[也很抱歉,我仍在学习C#,但了解大多数基础知识和一些更复杂的概念,但我从来都不擅长存储数据和使用JSON。如果您需要其他帮助,只需添加评论,我会添加。
请参阅Json.NET的Modifying JSON。
此示例加载JSON,修改JObject和JArray实例,然后再次写回JSON。
样本
string json = @"{ 'channel': { 'title': 'Star Wars', 'link': 'http://www.starwars.com', 'description': 'Star Wars blog.', 'obsolete': 'Obsolete value', 'item': [] } }"; JObject rss = JObject.Parse(json); JObject channel = (JObject)rss["channel"]; channel["title"] = ((string)channel["title"]).ToUpper(); channel["description"] = ((string)channel["description"]).ToUpper(); channel.Property("obsolete").Remove(); channel.Property("description").AddAfterSelf(new JProperty("new", "New value")); JArray item = (JArray)channel["item"]; item.Add("Item 1"); item.Add("Item 2"); Console.WriteLine(rss.ToString()); // { // "channel": { // "title": "STAR WARS", // "link": "http://www.starwars.com", // "description": "STAR WARS BLOG.", // "new": "New value", // "item": [ // "Item 1", // "Item 2" // ] // } // }