【发布时间】:2021-12-30 03:16:42
【问题描述】:
我有以下课程
class Configuration
{
public IConverter converter { get; set; }
}
public class HtmlConverter : IConverter
{
public string Convert()
{
return "HTML Convertter";
}
}
public class JsonConverter : IConverter
{
public string Convert()
{
return "json Convertter";
}
}
public interface IConverter
{
string Convert();
}
而myjson文件是
{
"Configuration": {
"Converter": "HtmlConverter"
}
}
从 JSON 文件,我想创建配置对象。
在 json 文件中,如果转换器设置为 "HtmlConverter",则应创建 HtmlConvert 对象,如果设置了 "JsonConverter",则应创建 JsonConverter 对象。
Configuration config = JsonConvert.DeserializeObject<Configuration>(jsonString);
【问题讨论】:
-
您的 JSON 根对象有一个属性“Configuration”,您的根 C# 类 (
Configuration) 只有一个属性“Converter”(在您的 JSON 的根对象中不存在)。跨度> -
你需要编写自己的 Json.NET 合约解析器来实现这个逻辑。
-
为像你这样的简单文件创建转换器的最简单方法是创建一个新类,然后将 json 字符串复制到剪贴板,然后在可视化中转到“粘贴”->“作为 json 类”工作室。然后 VS 将创建一个模型,无需更多实现即可轻松序列化