You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LiteDatabase序列化集合报错:不支持System.Type实例的序列化

解决LiteDatabase集合序列化JSON的错误问题

你遇到的错误是因为直接序列化了LiteCollection<User>对象——这个对象是LiteDatabase提供的操作类,内部包含EntityMapper等框架相关组件,其中的System.Type实例无法被JSON序列化。

正确的做法是先提取集合中的实际数据,再序列化数据列表:

修正后的代码示例

using (var db = new LiteDatabase(@"MyData.db"))
{
    var usersCollection = db.GetCollection<User>("users");
    // 获取集合中所有用户的实体列表
    var userData = usersCollection.FindAll().ToList();
    // 序列化实体列表
    var d = JsonConvert.SerializeObject(userData);
    return new JsonResult(userData);
}

额外说明

  • 如果只需要特定条件的数据,用Find()方法添加过滤逻辑后再转列表:
    // 示例:获取所有标记为活跃的用户
    var activeUsers = usersCollection.Find(u => u.IsActive).ToList();
    var serializedData = JsonConvert.SerializeObject(activeUsers);
    
  • LiteCollection<T>是用于操作数据库的工具类,不是数据容器,不能直接序列化。必须提取其中的实体数据(List<User>这类普通POCO集合)才能完成正常的JSON序列化。

内容的提问来源于stack exchange,提问作者user123456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:42:38