如何解决摇摇欲坠的架构未显示枚举的自定义值
我创建了一个还存储值的枚举
import com.fasterxml.jackson.annotation.JsonValue;
public enum AnimalType {
DOG("dog"),CAT("cat"),private final String displayName;
AnimalType(String displayName) {
this.displayName = displayName;
}
@JsonValue
public String getDisplayName() {
return displayName;
}
@Override
public String toString() {
return displayName;
}
}
我以这种方式创建枚举,因为用户将给我输入dog
或cat
。枚举值已正确序列化和反序列化。
但是swagger.json
显示DOG
和CAT
代替dog
和cat
。我不希望用户看到内部枚举名称,并且由于该模式将由用户使用,因此我想在模式中显示dog
或cat
。
"type" : {
"type" : "string","enum" : [ "DOG","CAT"]
},
我尝试使用@JsonProperty
注释(例如@JsonProperty("dog")
),但这并不能解决问题。您能指导我如何解决这个问题吗?
版本: 挥舞:2.0 杰克逊:2.7.9
解决方法
使用
测试代码Private Sub Ford_Inventory_Variance_File_CleanUp()
Dim sh As Worksheet,lastRow As Long,i As Long,rngDel As Range,boolToDelete As Boolean
Set sh = ActiveSheet 'use here your sheet
lastRow = sh.Range("A" & Rows.count).End(xlUp).Row
For i = 20 To lastRow
If sh.Range("A" & i).Value = "" Then
boolToDelete = True
ElseIf InStr(sh.Range("A" & i).Value,"/") = 0 And InStr(sh.Range("A" & i).Value,"Total of Inventory") = 0 Then
boolToDelete = True
ElseIf Not IsNumeric(left(sh.Range("A" & i).Value,1)) And InStr(sh.Range("A" & i).Value,"Total of Inventory") = 0 Then
boolToDelete = True
End If
If boolToDelete Then
If rngDel Is Nothing Then 'for first time (when rngDel is nothing)
Set rngDel = sh.Range("A" & i)
Else 'next times a union of existing rngDel and the processed cell is created
Set rngDel = Union(rngDel,sh.Range("A" & i))
End If
End If
boolToDelete = False 'reinitialize the boolean variable
Next i
If Not rngDel Is Nothing Then rngDel.EntireRow.Delete xlUp 'rng deletion at once
End Sub
,
我尝试了各种替代方法来使其工作,例如
public enum AnimalType {
@JsonProperty("dog") DOG("dog"),@JsonProperty("cat") CAT("cat"),
或使用@ {sercheo_87建议的@JsonCreator
。但是该架构未显示所需的值。
我发现这是swagger-core中的错误。接受swagger的更新版本对我有帮助。另外,他们正在向后移植对此版本的更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。