[BUG] Kotlin generators should have use-site target field for @JsonProperty annotation
Created by: m-kay
In the generated Kotlin data classes there is no use-site target specified on the @JsonProperty annotation. Since constructor paramters are used, Jackson does not recognize this annotation because it is only scanning for field and getter/setter annotations.
In my case im having problems with a property which should be serialized as eMailAddress
, but with the default bean naming strategy of Jackson, the serialized property is called emailAddress
.
OpenAPI declaration file
openapi: 3.0.1
info:
title: Test API
version: v1
paths:
/test:
post:
tags:
- User
operationId: createUser
requestBody:
description: The data for the account creation.
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/UserInfo'
responses:
'201':
description: The account was created.
components:
schemas:
UserInfo:
required:
- eMailAddress
type: object
properties:
eMailAddress:
maxLength: 256
type: string
description: The email address of the user.
description: request object
Actual generated data class
data class UserInfo(
@get:NotNull @get:Size(max=256)
@JsonProperty("eMailAddress") val eMailAddress: kotlin.String
) {}
Expected generated data class
data class UserInfo(
@get:NotNull @get:Size(max=256)
@field:JsonProperty("eMailAddress") val eMailAddress: kotlin.String
) {}
I'm using the current version 4.3.0 of the generator.