我要做的是在C#(Visual Studio 2017)中创建一个您输入字符串的程序。并且你有一个Json字符串被反序列化为一个对象。我有库Newtonsoft Json库来处理我的Json字符串和文件。但我希望能够用字符串更改它。例如
internal static void ChangeSettings(String Dir, string s, string[] value)
{
String SettingsString = File.ReadAllText(Dir);
DefaultSettings Settings = JsonConvert.DeserializeObject<DefaultSettings>(SettingsString);
}
这是我DefaultSettings
internal class DefaultSettings
{
public string ReportLogChannel { get; set; }
public string RespondReport { get; set; }
public string AutoPrefixRulesOrTutorials { get; set; }
}
现在让我们说json是{"ReportLogChannel":"None","RespondReport":"","AutoPrefixRulesOrTutorials":"true"}
我输入一个字符串。例如"ReportLogChannel"
然后我想选择该密钥。然后将其更改为另一个字符串。所以。这是一个Discord机器人。现在。所以。在Json。我们有密钥"ReportLogChannel"
。如果我输入一个字符串。 "ReportLogChannel"
。然后它将使用Settings
和字段值
答案 0 :(得分:1)
解决了!最后。这就是我想出来的
DefaultSettings Settings = JsonConvert.DeserializeObject<DefaultSettings>(SettingsString);
Console.WriteLine(Settings.GetType().GetProperty(s).GetValue(Settings, null).ToString());
Settings.GetType().GetProperty(s).SetValue(Settings, value);
s
是我想要获得的属性。而value是一个字符串,其中包含我想要放入值的所有字符串部分。