You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenAPI Generator生成Kotlin DTO时大小写敏感JSON属性引发属性名冲突的解决求助

OpenAPI Generator生成Kotlin DTO时大小写敏感JSON属性引发属性名冲突的解决求助

各位同行好,我最近在工作中碰到个头疼的问题,想请大家支支招:

我正在用OpenAPI Generator(基于OpenAPI v3.0.3)从OpenAPI规范生成Kotlin的DTO类,现在遇到一个Schema里有两个JSON属性,它们只有开头大小写不一样:inventoryCharacteristics(小写开头)和InventoryCharacteristics(大写开头)。但生成的Kotlin DTO里这两个属性的名字完全一样,直接报编译冲突了!

先给大家看看我的Schema片段:

LoadingUnit:
  type: object
  properties:
    inventoryCharacteristics:
      allOf:
        - $ref: '#/components/schemas/InventoryCharacteristicsLower'
      nullable: true
    InventoryCharacteristics:
      allOf:
        - $ref: '#/components/schemas/InventoryCharacteristicsUpper'
      nullable: true

生成的Kotlin DTO代码是这样的,一眼就能看到第二个属性和第一个重名了:

data class LoadingUnitDTO (
    @get:JsonProperty("inventoryCharacteristics")
    val inventoryCharacteristics: InventoryCharacteristicsLowerDTO? = null,
    @get:JsonProperty("InventoryCharacteristics")
    val inventoryCharacteristics: InventoryCharacteristicsUpperDTO? = null // ← 这里直接冲突!
)

编译时抛出的错误提示也很明确:

e: Conflicting declarations: 
inventoryCharacteristics: InventoryCharacteristicsLowerDTO? = ...
inventoryCharacteristics: InventoryCharacteristicsUpperDTO? = ...

现在的问题是,我完全没办法修改传入的JSON结构,之前试过用x-kotlin-name这个扩展来指定不同的属性名,但不知道哪里操作不对,完全没起作用。有没有其他办法能解决这个属性名冲突的问题呀?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 13:38:03