【发布时间】:2021-09-21 15:57:41
【问题描述】:
我确定你知道上面的问题。我想知道如何解决它。我知道我的数据是列表形式,但在我使用 map 的数据类中。我真的不明白我应该如何改变它来工作,基本上我只是跟着flutter.dev documentation
如果你想知道我做了什么
我基本上用 json_serializable 解析我的数据。在使用测试数据进行测试时一切正常。
我的数据:
我的模型包含一个标题、图像和一个名为 modelData 的嵌套类。
`import 'package:json_annotation/json_annotation.dart';
import 'modelData.dart';
part 'Modell.g.dart';
@JsonSerializable(explicitToJson: true)
class Modell {
final String title;
final String image;
final ModelData modelData;
Modell(this.title, this.image, this.modelData);
factory Modell.fromJson(Map<String, dynamic> json)
=> _$ModellFromJson(json);
Map<String, dynamic> toJson() => _$ModellToJson(this);}
`
import 'package:json_annotation/json_annotation.dart';
part 'modelData.g.dart';
@JsonSerializable()
class ModelData {
final String title;
ModelData(this.title);
factory ModelData.fromJson(Map<String, dynamic> json)
=> _$ModelDataFromJson(json);
Map<String, dynamic> toJson() => _$ModelDataToJson(this);
}
我正在使用此代码使用数据:
var modelle = const[];
Future loadDataList() async {
String content = await rootBundle.loadString("assets/ddddddd.json");
List collection = json.decode(content);
List<Modell> _modelle = collection.map((json) => Modell.fromJson(json)).toList();
setState(() {
modelle = _modelle;
});
}
void initState() {
loadDataList();
super.initState();
& 如果需要,我的数据的一部分:
[
{
"title":" Alfa Romeo ",
"image":" AlfaRomeo.png ",
"modelData":[
{
"title":" 4C ",
"variantenData":[
]
},
我希望我写得足够清楚和详细。如果我错过了什么,sry
-----更新-----
我测试了一下,发现只需添加 List 就不再出现错误,将进一步测试以查看解决方案是否真的按预期工作
import 'package:json_annotation/json_annotation.dart';
import 'modelData.dart';
part 'Modell.g.dart';
@JsonSerializable(explicitToJson: true)
class Modell {
final String title;
final String image;
List <ModelData> modelData; //adding List
Modell(this.title, this.image, this.modelData);
factory Modell.fromJson(Map<String, dynamic> json)
=> _$ModellFromJson(json);
Map<String, dynamic> toJson() => _$ModellToJson(this);
}
【问题讨论】:
-
ModelData是一个数组,而不是String,尽管据我所知 -
我必须如何更改它才能正常工作?