diff --git a/modules/openapi-generator/src/main/resources/dart2/api_helper.mustache b/modules/openapi-generator/src/main/resources/dart2/api_helper.mustache index ec98b7d1d741..fc71c729af08 100644 --- a/modules/openapi-generator/src/main/resources/dart2/api_helper.mustache +++ b/modules/openapi-generator/src/main/resources/dart2/api_helper.mustache @@ -98,3 +98,18 @@ DateTime? mapDateTime(dynamic map, String key, [String? pattern]) { } return null; } + +extension DateTimeHelper on DateTime { + static List? listFromJson(dynamic json, {bool growable = false}) { + final result = []; + if (json is List && json.isNotEmpty) { + for (final row in json) { + final value = DateTime.tryParse(row); + if (value != null) { + result.add(value); + } + } + } + return result.toList(growable: growable); + } +} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/dart2/serialization/native/native_class.mustache b/modules/openapi-generator/src/main/resources/dart2/serialization/native/native_class.mustache index dd656c53e709..f1c444a1fd8a 100644 --- a/modules/openapi-generator/src/main/resources/dart2/serialization/native/native_class.mustache +++ b/modules/openapi-generator/src/main/resources/dart2/serialization/native/native_class.mustache @@ -150,7 +150,12 @@ class {{{classname}}} { : null, {{/items.isArray}} {{^items.isArray}} - {{{name}}}: {{{complexType}}}.listFromJson(json[r'{{{baseName}}}']){{#required}}{{^isNullable}}!{{/isNullable}}{{/required}}{{^required}}{{#defaultValue}} ?? {{{.}}}{{/defaultValue}}{{/required}}, + {{#items.isDateTime}} + {{{name}}}: DateTimeHelper.listFromJson(json[r'{{{baseName}}}']){{^isNullable}}!{{/isNullable}}, + {{/items.isDateTime}} + {{^items.isDateTime}} + {{{name}}}: {{{complexType}}}.listFromJson(json[r'{{{baseName}}}']){{#required}}{{^isNullable}}!{{/isNullable}}{{/required}}{{^required}}{{#defaultValue}} ?? {{{.}}}{{/defaultValue}}{{/required}}, + {{/items.isDateTime}} {{/items.isArray}} {{/isArray}} {{^isArray}}