Формат JSON напрямую сопоставляется с соответствующим дизайном Java-класса.
В вашем случае следующее объявление будет выполнено -
class ExceptionResponse {
private CustomException exception;
}
class CustomException {
private Date timestamp;
private Message message; //can even split message further.
private String details;
}
class Message {
private int id;
private String category;
private String comment;
}
Выходной JSON из ExceptionResponse будет:
exception: {
"timestamp":"...",
"message": {
"id":"...",
"category":"...",
"comment":"..."
},
"details":"..."
}