我有以下課程:
@JsonSerializable(explicitToJson: true)
class Section {
@JsonKey(name: '_id')
late String id;
late BaseInfo info;
@JsonKey(name: 'document_ids')
late List<String>? documentIds;
late List<String>? tags;
late List<Comment>? comments;
late List<UserBasedPermission>? permissions;
Section();
factory Section.fromJson(Map<String, dynamic> json) =>
_$SectionFromJson(json);
Map<String, dynamic> toJson() => _$SectionToJson(this);
}
現在,當我嘗試呼叫 fromJson 時,我收到錯誤訊息,提示 aMap<String, dynamic>是預期的,但_JsonMap發現了 a 。我用來轉換它的代碼如下:
String test = '{"_id":"610b8ce9faa3695a81b93e98","info":{"name":"Mathematik","description":"Alles was mit Mathe zu tun hat Hurz ein Reh. Ein Hirsch 222 3333 444 555","active":false,"created_date":1628146903325,"created_by":"admin","last_update":null,"last_update_by":null,"last_comment":null,"deletion_date":null,"deleted_by":null,"locked_by":null,"locked_date":null,"object_type":"SECTION","version":6,"api_version":1},"document_ids":[],"tags":["mathematik","mathe","wissenschaft"],"comments":[{"user":"","timestamp":1628579634126,"comment":"Das ist ein Kommentar"},{"user":"admin","timestamp":1628580529698,"comment":"Noch ein Kommentar"}],"permissions":{"read_write_users":null,"read_only_users":null,"excluded_users":null}}';
Map<String, dynamic> parsedJson = jsonDecode(test);
print("parsedJson type: ${parsedJson.runtimeType} / $parsedJson");
Section sec = Section.fromJson(parsedJson);
我只是想不通問題出在哪里。
uj5u.com熱心網友回復:
嘗試以這種方式創建變數:
Map<String, dynamic> parsedJson = jsonDecode(test) as Map<String,dynamic>;
uj5u.com熱心網友回復:
顯然 JsonSerializable 注釋中存在一些問題。在我將其更改為它后,@JsonSerializable(explicitToJson: true, includeIfNull: true, anyMap: false)它按預期作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/349098.html
