首页 > 解决方案 > Flutter Moor 插入阵列

问题描述

我有以下 json {"key1":1,"results":[{"k1":"v1"},{"k2":"v2"}]}

我正在尝试将关键结果存储在 moor 数据库中。我已经创建了数据库并且能够存储key1但无法存储结果。我已经尝试了以下代码。//表格代码

class ClassName extends Table {
IntColumn get key1 => integer()();
TextColumn get results => text().map(const ResultConverter()).nullable()();
  
  }

//类型转换器的代码

class ResultConverter extends TypeConverter<Result, String> {
   const ResultConverter();
  @override
  Result? mapToDart(String? fromDb) {
    if (fromDb == null) {
      return null;
    }
    return Result.fromJson(json.decode(fromDb) as Map<String, dynamic>);
     }

  @override
  String? mapToSql(Result? value) {
    if (value == null) {
      return null;
    }

    return json.encode(value.toJson());
  }
   }

//插入数据的代码

 var data = ClassName.fromJson(value['body']);
    database.insertData(data);
    

我收到以下错误。未处理的异常:“列表”类型不是“结果”类型的子类型?

标签: flutter

解决方案


推荐阅读