C# 如何修改JSON列表中的JSON对象?

C# 如何修改JSON列表中的JSON对象?,c#,json,C#,Json,我的JSON列表如下所示(其中类型3是CommandType.Welcome): 我当前的方法将从列表中提取正确的对象并修改该对象,但它不会修改列表对象。例如,command.message=message,但当我序列化列表时,它不会合并更改 public void SetGreetMessage(string message) { var leaveGreet = new LeaveGreetService(); foreach (var com

我的JSON列表如下所示(其中类型3是CommandType.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是文件中命令对象的列表,我认为您传递的命令参数不正确,并且没有生成json。我已将
serializeObject
参数从
CommandList
更改为
command

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(command, Formatting.Indented);

            File.WriteAllText("Commands.txt", jsonData);
        }
    }

我认为您错误地传递了命令参数,并且没有生成json。我已将
serializeObject
参数从
CommandList
更改为
command

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(command, Formatting.Indented);

            File.WriteAllText("Commands.txt", jsonData);
        }
    }

最后两行不应该在循环之外吗?CommandList的类型是什么?这是集合命令对象吗,命令是C#类吗?@HaseebAsif我编辑了我的问题最后两行不应该在循环之外吗?命令列表的类型是什么?它是集合命令对象吗,命令是C#类吗?@HaseebAsif我编辑了我的问题