Skip to content

[BUG] Kotlin generators should have use-site target field for @JsonProperty annotation #6185

Description

@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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions