quicktype icon indicating copy to clipboard operation
quicktype copied to clipboard

Null check error in Generated toJson methods in dart having nullable DateTime values

Open anugrahkora opened this issue 1 year ago • 0 comments

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

anugrahkora avatar May 10 '24 07:05 anugrahkora