When model for a json having a nullable field is generated, the generated toJson Method doesn't recognise nullable DateTime value and returns an exception Null check operator used on a null value.
Null Safety
Output
Input Format: Json
Output Language: Dart
When we parse a large Json with multiple nullable date time object, the toJson Method causes the null check error and it is a lot of manual work to fix this issue
Use a null check before parsing the date on the toJson methods
Input Data
{
"debitNoteDate": "2023-01-01",
"dueDate": "2023-01-01"
}
Expected Behaviour / Output
Map<String, dynamic> toJson() => {
"debitNoteDate": "${debitNoteDate!.year.toString().padLeft(4, '0')}-${debitNoteDate!.month.toString().padLeft(2, '0')}-${debitNoteDate!.day.toString().padLeft(2, '0')}",
"dueDate": "${dueDate!.year.toString().padLeft(4, '0')}-${dueDate!.month.toString().padLeft(2, '0')}-${dueDate!.day.toString().padLeft(2, '0')}"
};
Map<String, dynamic> toJson() => {
"debitNoteDate": debitNoteDate==null? null:"${debitNoteDate!.year.toString().padLeft(4, '0')}-${debitNoteDate!.month.toString().padLeft(2, '0')}-${debitNoteDate!.day.toString().padLeft(2, '0')}",
"dueDate":dueDate==null? null: "${dueDate!.year.toString().padLeft(4, '0')}-${dueDate!.month.toString().padLeft(2, '0')}-${dueDate!.day.toString().padLeft(2, '0')}"
};
Current Behaviour / Output
Steps to Reproduce
Possible Solution
When model for a json having a nullable field is generated, the generated toJson Method doesn't recognise nullable DateTime value and returns an exception Null check operator used on a null value.
Null Safety
Output
Input Format: Json
Output Language: Dart
When we parse a large Json with multiple nullable date time object, the toJson Method causes the null check error and it is a lot of manual work to fix this issue
Use a null check before parsing the date on the toJson methods
Input Data
{
"debitNoteDate": "2023-01-01",
"dueDate": "2023-01-01"
}
Expected Behaviour / Output
Map<String, dynamic> toJson() => {
Map<String, dynamic> toJson() => {
Current Behaviour / Output
Steps to Reproduce
Possible Solution