【发布时间】:2021-01-14 22:19:15
【问题描述】:
在存储到本地数据库之前将json 字符串转换为对象的正确方法是什么?
这是i['created_by_user'] 的输出:
{id: 3, name: A}
我试图将其转换为 CreatedBy 对象
CreatedBy.fromJson(jsonDecode(i['created_by_user'])),
创建者
@JsonSerializable()
class CreatedBy{
var name;
var id;
CreatedBy();
factory CreatedBy.fromJson(Map<String, dynamic> json) =>
_$CreatedByFromJson(json);
Map<String, dynamic> toJson() => _$CreatedByToJson(this);
}
这里是我的本地表列
TextColumn get createdByUser =>
text().map(const CreatedBySqlConverter()).nullable()();
class CreatedBySqlConverter extends TypeConverter<CreatedBy, String> {
const CreatedBySqlConverter();
CreatedBy mapToDart(String fromDb) {
if (fromDb == null) return null;
return CreatedBy.fromJson(json.decode(fromDb));
}
String mapToSql(CreatedBy createdBy) => json.encode(createdBy.toJson());
}
错误
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'
【问题讨论】: