Skip to content

Commit 69ac56c

Browse files
committed
[Kotlin] Fix (de)serialization of enum classes
While inner enum classes from dataClass.mustache work fine, standalone enum classes lack `@JsonProperty` annotations so that Jackson uses names instead of values.
1 parent 8509f6b commit 69ac56c

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinSpringServerCodegen.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,8 +538,10 @@ public Map<String, Object> postProcessModelsEnum(Map<String, Object> objs) {
538538
.filter(cm -> Boolean.TRUE.equals(cm.isEnum) && cm.allowableValues != null)
539539
.forEach(cm -> {
540540
cm.imports.add(importMapping.get("JsonValue"));
541+
cm.imports.add(importMapping.get("JsonProperty"));
541542
Map<String, String> item = new HashMap<>();
542543
item.put("import", importMapping.get("JsonValue"));
544+
item.put("import", importMapping.get("JsonProperty"));
543545
imports.add(item);
544546
});
545547

modules/openapi-generator/src/main/resources/kotlin-spring/enumClass.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
*/
55
enum class {{classname}}(val value: {{dataType}}) {
66
{{#allowableValues}}{{#enumVars}}
7-
{{&name}}({{{value}}}){{^-last}},{{/-last}}{{#-last}};{{/-last}}
7+
@JsonProperty({{{value}}}) {{&name}}({{{value}}}){{^-last}},{{/-last}}{{#-last}};{{/-last}}
88
{{/enumVars}}{{/allowableValues}}
99
}

0 commit comments

Comments
 (0)