簡體   English   中英

為什么在通過 rest api 調用時枚舉並不總是有效?

[英]Why are enums not always working when call by a rest api?

我有一個使用枚舉的 dto(我們稱之為比較):

public enum Comparison {
    comparisonA, comparisonB, comparisonC, comparisonD
}

public class ComparisonDto {
    public Comparison operator;
    public Integer value;

    // with getter and setter
}

用我的電腦編譯時效果很好,但其他開發人員有一個問題:不再識別使用的比較值。 調用路徑時,json 格式如下:

{
  "value" : 10,
  "operator" : "comparisonA"
}

這種情況下最常見的錯誤是“無法識別的數據類型”。 例如,api 是在這種形式下:

@Path("/path-to-call")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public interface ApiRs {

    @POST
    @Path("/")
    @Produces(MediaType.APPLICATION_JSON)
    ResponseStatus create(ComparisonDto comparisonDto);
}

不使用彈簧。

看起來你有一個簡單的錯字,把一切都搞砸了。 我認為這不是比較字段,而是值字段不正確。

如果發送的json真的是:

{
  "values" : 10,
  "operator" : "comparisonA"
}

那么應該是

{
  "value" : 10,
  "operator" : "comparisonA"
}

從“值”中刪除額外的 s,希望數據類型應該被識別,一切都會再次正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM