如何防止序列化Json空值?



我有一个有toJson方法的类。

class SearchFormModel {

List<String>? purchaseNumbersList;
List<String>? regionsSelectedNames; 

SearchFormModel( {
this.purchaseNumbersList,
this.regionsSelectedNames
}
);

Map toJson() => {
'purchaseNumbersList': purchaseNumbersList,
'regionsNames': regionsSelectedNames
};
}

我想防止在Json中添加null值字段。

例如,如果purchaseNumbersListnull,则不应将其添加到结果JSON中。

如何在Dart中实现?

可以使用集合if在映射文字中选择性地包含键/值对。

class SearchFormModel {
List<String>? purchaseNumbersList;
List<String>? regionsSelectedNames; 

SearchFormModel({
this.purchaseNumbersList,
this.regionsSelectedNames
});
Map toJson() => {
if (purchaseNumbersList != null) 'purchaseNumbersList': purchaseNumbersList,
if (regionsSelectedNames != null) 'regionsNames': regionsSelectedNames,
};
}