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
相关产品推荐
相关产品推荐

