对于image
对象为null的调用将得到下面的错误,
datatype 'Null' is not a subtype of type 'Map<String, dynamic>'
但是对于所有'IMAGE'数据可用的调用,我没有得到任何错误。
实际上,对于一些用户调用返回的JSON没有image
对象,这是错误的实际原因,在我未来的构建器snapshot.hasdata
等于false
意味着JSON没有序列化所以我怎么能让我的dart类检查nullimage
对象值没有得到上面的错误,下面是我的dart类模态。
class Test {
Test({
required this.debug,
required this.devide,
required this.image,
});
late final String debug;
late final String devide;
late final Image image;
Test.fromJson(Map<String, dynamic> json){
debug = json['debug'];
devide = json['devide'];
image = Image.fromJson(json['image']);
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['debug'] = debug;
_data['devide'] = devide;
_data['image'] = image.toJson();
return _data;
}
}
class Image {
Image({
required this.src,
required this.name,
required this.hOffset,
required this.vOffset,
required this.alignment,
});
late final String src;
late final String name;
late final int hOffset;
late final int vOffset;
late final String alignment;
Image.fromJson(Map<String, dynamic> json){
src = json['src'];
name = json['name'];
hOffset = json['hOffset'];
vOffset = json['vOffset'];
alignment = json['alignment'];
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['src'] = src;
_data['name'] = name;
_data['hOffset'] = hOffset;
_data['vOffset'] = vOffset;
_data['alignment'] = alignment;
return _data;
}
}
```
在model中,您可以定义如下值paidByNum = json['paidByNum'] ?? defaultValue;
例如,如果paidByNum是int类型,那么paidByNum = json['paidByNum'] ?? 0;
为字符串paidByNum = json['paidByNum'] ?? "";
将null值替换为默认值。
简单地做一个null检查并分配一个默认值或null
_data['id'] = id == null ? null : id;
PS:打字代码比截图更受欢迎