Skip to content

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

@m-kay

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions