Я получаю ошибку 400 unable to parse JSON
, когда я отправляю GET на games/
, используя Postman.Ошибка DropWizard 400 при GET при использовании @JsonInclude (NON_DEFAULT)
GameResource:
@Path("/games")
@Produces(MediaType.APPLICATION_JSON)
public class GameResource {
@GET
public List<Game> getGames() {
ArrayList<Game> l = new ArrayList<Game>();
l.add(new Game(100));
return l;
}
}
игры:
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Game {
protected int id;
protected int whoseTurn;
protected int winner;
protected char[][] board;
public Game(int id, int turn, int winner, char[][] board) {
this.id=id;
this.whoseTurn=turn;
this.winner=winner;
this.board=board;
}
public int getId() {
return id;
}
public int getWhoseTurn() {
return whoseTurn;
}
@JsonInclude(Include.NON_DEFAULT)
public int getWinner() {
return winner;
}
@JsonIgnore
public char[][] getBoard() {
return board;
}
Если удалить аннотацию getWinner
, он отлично работает. Почему это может быть? Include.NON_DEFAULT
не поддерживается DropWizard? Другие аннотации, похоже, работают нормально ...
Вы создаете объект Game, используя конструктор «new Game (100)», но я не вижу его в коде. Есть ли еще код для класса Game? –