当建好Model后,后台的某个值返回一会儿返回[],一会儿返回{},一会儿返回null,一会儿返回“”处理
例如
在Model中bid_manpower_plan_info字段
之前返回的一直是map{}格式,后来发现当数据为空的时候返回[]。导致解析失败
做如下处理:
1.在Model文件中bid_manpower_plan_info字段前加@HumanPlanConverter()
@HumanPlanConverter()
@JsonKey(name: 'bid_manpower_plan_info')
HumanPlanModel? humanPlanBidWinning;
2.在HumanPlanModel 中
class HumanPlanConverter implements JsonConverter<HumanPlanModel?, dynamic> {
const HumanPlanConverter();
@override
HumanPlanModel? fromJson(dynamic json) {
if (json == null) return null;
// 如果是列表且不为空,取第一个元素
if (json is List && json.isNotEmpty) {
return null;
}
// 如果是单个对象
if (json is Map<String, dynamic>) {
return HumanPlanModel.fromJson(json);
}
// 如果是""
if (json is String) {
return json.isEmpty ? null : null;
}
@override
dynamic toJson(HumanPlanModel? object) {
return object?.toJson();
}
}
其它代码不用改变正常使用就可以了