我的JSON列表如下所示(其中Type 3是CommandType.Welcome):
[
{
"Keyword": "Hello",
"Type": 0,
"Message": "World"
},
{
"Keyword": "Hi",
"Type": 0,
"Message": "There"
},
{
"Keyword": "Test",
"Type": 0,
"Message": "test"
},
{
"Keyword": "Greeting",
"Type": 3,
"Message": "Welcome"
}
]
我当前的方法将从列表中提取正确的对象并修改对象,但它不会修改列表对象,因此不会修改该文件。例如,command.message = message但是当我序列化列表时,它不会合并更改。
public void SetGreetMessage(string message)
{
var leaveGreet = new LeaveGreetService();
foreach (var command in leaveGreet.CommandList.Where(x => x.Type == CommandType.Welcome))
{
command.Message = message;
dynamic jsonData = JsonConvert.SerializeObject(CommandList, Formatting.Indented);
File.WriteAllText("Commands.txt", jsonData);
}
}
我已经在线查看了一些资源,并且大多数解析为字符串并使用字符串对其进行修改。但我想知道是否有可能以某种方式这样做。我知道我可以使用这种方法为它添加一个新对象,但修改似乎是一个伟大的壮举。
using System;
namespace vVvBot.Model
{
public class CustomCommand
{
public string Keyword { get; set; }
public CommandType Type { get; set; }
public string Message { get; set; }
}
public enum CommandType
{
Message,
Faq,
Action,
Welcome,
Leaving
}
}
CommandList是文件
中命令Object的列表