Json序列化和反序列化基于接口的集合数组

安装Nuget包:

Install-Package Newtonsoft.Json

 

主要是要加上下面的设置:

JsonSerializerSettings settings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All };

 

示例代码:

复制代码
private void SaveConvertItems()
{
    JsonSerializerSettings settings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All };
    var json = JsonConvert.SerializeObject(ConvertItems, Formatting.Indented, settings);
    File.WriteAllText(ConvertItemsPath, json);
}

private IConvertInfo[] LoadConvertItems()
{
    if (File.Exists(ConvertItemsPath))
    {
        var json = File.ReadAllText(ConvertItemsPath);
        JsonSerializerSettings settings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All };
        var items = JsonConvert.DeserializeObject<IConvertInfo[]>(json, settings);
        items.ForEach(s => ConvertController.Instance.UpdateConvertInfo(s));

        return items;
    }

    return null;
}
复制代码

 

posted @   wzwyc  阅读(141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
历史上的今天:
2017-01-18 【转】在C#中简单的科学计算,包括幂数,指数,对数,Math类
2017-01-18 【转】跟面试官聊.NET垃圾收集,直刺面试官G点
2017-01-18 注册表实现开机启动
2017-01-18 遍历所有的XML
2017-01-18 动态加载XAML
2017-01-18 C#有哪几种定时器
2017-01-18 以管理员权限启动应用
点击右上角即可分享
微信分享提示