春ブーツ休憩中にリクエストパラメータとして列挙型

merdle:

私は春ブーツに新しいですし、残りのリクエストのパラメータとして列挙型を使用しようとしています。

これは私の列挙型クラスです。

public enum Month {

    JANUARY (1, "january"), FEBRUARY(2,"february"), MARCH(3,"march"),
    APRIL(4,"april"), MAY(5,"may"), JUNE(6,"june"), JULY(7,"july"),
    AUGUST(8, "august"), SEPTEMBER(9,"september"), OCTOBER(10,"october"),
    NOVEMBER(11,"november"), DECEMBER(12,"december");

    private String desc;
    private int id;

    //Constructure

    //Getters and Setters
}

私のコントローラクラスでは、私はこの方法を使用しています:

    @RequestMapping(value = "/testmonth", method = RequestMethod.POST)
        public Month TestForMonth(@RequestBody Month inputPayload) {
            Month response = inputPayload;
            response.setId(inputPayload.getId());
            response.setDesc(inputPayload.getDesc());
            System.out.println("As String: " + inputPayload.getDesc() + ". As int " + inputPayload.getId() + ".");
            return response;
        }

これは私のJSONです:

{
    Month: "JANUARY"
}

しかし、それが動作していない..私はこのエラーを取得しています:

.w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `com.example.simplerestapis.models.Month` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `com.example.simplerestapis.models.Month` out of START_OBJECT token
 at [Source: (PushbackInputStream); line: 1, column: 1]]
ヴォイチェフWirzbicki:

あなたの体は、単純な列挙型ではなくオブジェクトとして宣言されています。だから、代わりに中括弧でJSONオブジェクトを掲示例えばある値だけを、投稿してみてください。

"JANUARY"

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=214709&siteId=1