我创建了一个还存储值的枚举
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
答案 0 :(得分:1)
使用
测试代码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
答案 1 :(得分:0)
我尝试了各种替代方法来使其工作,例如
public enum AnimalType {
@JsonProperty("dog") DOG("dog"),
@JsonProperty("cat") CAT("cat"),
或使用@ {sercheo_87建议的@JsonCreator
。但是该架构未显示所需的值。
我发现这是swagger-core中的错误。接受swagger的更新版本对我有帮助。另外,他们正在向后移植对此版本的更改。