Flutter如何在api响应Json解析时检查空值到dart类,下面是我的dart类

  • 本文关键字:dart 空值 api 响应 Json Flutter flutter dart
  • 更新时间 :
  • 英文 :


对于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:打字代码比截图更受欢迎