tipe '_InternalLinkedHashMap <String, dynamic>' bukan subtipe dari tipe 'String'
Sep 29 2020
Apa cara yang benar untuk mentransmisikan jsonstring ke objek sebelum disimpan ke database lokal?
Ini adalah keluaran untuk i['created_by_user']:
{id: 3, name: A}
Saya mencoba melemparkannya ke CreatedBykeberatan
CreatedBy.fromJson(jsonDecode(i['created_by_user'])),
Dibuat oleh
@JsonSerializable()
class CreatedBy{
var name;
var id;
CreatedBy();
factory CreatedBy.fromJson(Map<String, dynamic> json) =>
_$CreatedByFromJson(json); Map<String, dynamic> toJson() => _$CreatedByToJson(this);
}
Berikut kolom tabel lokal saya
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());
}
Kesalahan
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'
Jawaban
1 Nonstapp Sep 29 2020 at 17:28
Jika di fromJson () Anda membutuhkan Map <String, dynamic> dan keluaran dari
i['created_by_user'] //is a Map<String, dynamic>
Saya pikir Anda tidak perlu memecahkan kode itu.
Saya akan menyarankan Anda untuk mengganti
CreatedBy.fromJson(jsonDecode(i['created_by_user'])),
dengan
CreatedBy.fromJson(i['created_by_user']),
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'