gpt4 book ai didi

json - '_InternalLinkedHashMap'类型不是 'String'类型的子类型

转载 作者:行者123 更新时间:2023-12-03 03:30:30 25 4
gpt4 key购买 nike

在存储到本地数据库之前将json字符串转换为对象的正确方法是什么?
这是i['created_by_user']的输出:

{id: 3, name: A}
我试图将其转换为 CreatedBy对象
 CreatedBy.fromJson(jsonDecode(i['created_by_user'])),
创建dBy
@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'

最佳答案

如果在fromJson()中,则需要Map 和输出

i['created_by_user'] //is a Map<String, dynamic> 
我认为您不必解码它。
我建议你更换
CreatedBy.fromJson(jsonDecode(i['created_by_user'])),
CreatedBy.fromJson(i['created_by_user']),

关于json - '_InternalLinkedHashMap<String, dynamic>'类型不是 'String'类型的子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64117323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com