From 487a24e684a34e02234836af43760cf6fb11b7c8 Mon Sep 17 00:00:00 2001 From: "jongsun.park" Date: Sun, 16 Nov 2025 20:43:31 +0900 Subject: [PATCH] feat: support 4-level deep nested list deserialization in Dart generator --- .../native/native_class.mustache | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) 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 b4ba0b716a12..40f4e6b68445 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 @@ -139,16 +139,27 @@ class {{{classname}}} { {{#complexType}} {{#isArray}} {{#items.isArray}} - {{{name}}}: json[r'{{{baseName}}}'] is List - ? (json[r'{{{baseName}}}'] as List).map((e) => - {{#items.complexType}} - {{items.complexType}}.listFromJson(json[r'{{{baseName}}}']){{#uniqueItems}}.toSet(){{/uniqueItems}} - {{/items.complexType}} - {{^items.complexType}} - e == null ? {{#items.isNullable}}null{{/items.isNullable}}{{^items.isNullable}}const <{{items.items.dataType}}>[]{{/items.isNullable}} : (e as List).cast<{{items.items.dataType}}>() - {{/items.complexType}} - ).toList() - : {{#isNullable}}null{{/isNullable}}{{^isNullable}}const []{{/isNullable}}, + {{{name}}}: json[r'{{{baseName}}}'] is List + ? (json[r'{{{baseName}}}'] as List).map((level1) => + (level1 as List).map((level2) => + {{#items.items.isArray}} + (level2 as List).map((level3) => + {{#items.items.items.isArray}} + (level3 as List).map((level4) => + level4 as {{items.items.items.items.dataType}} + ).toList() + {{/items.items.items.isArray}} + {{^items.items.items.isArray}} + level3 as {{items.items.items.dataType}} + {{/items.items.items.isArray}} + ).toList() + {{/items.items.isArray}} + {{^items.items.isArray}} + level2 as {{items.items.dataType}} + {{/items.items.isArray}} + ).toList() + ).toList() + : {{#isNullable}}null{{/isNullable}}{{^isNullable}}const []{{/isNullable}}, {{/items.isArray}} {{^items.isArray}} {{{name}}}: {{{complexType}}}.listFromJson(json[r'{{{baseName}}}']){{#uniqueItems}}.toSet(){{/uniqueItems}},