Десериализация Джексона типа с различными объектами

У меня есть результат от веб-службы, которая возвращает либо логическое значение, либо одноэлементную карту, например,

Логический результат:

{
    id: 24428,
    rated: false
}

Результат карты:

{
    id: 78,
    rated: {
        value: 10
    }
}

По отдельности я могу легко сопоставить их оба, но как мне сделать это в общем?

В основном я хочу сопоставить его с классом, как:

public class Rating {
    private int id;
    private int rated;
    ...
    public void setRated(?) {
        // if value == false, set rated = -1;
        // else decode "value" as rated
    }
}

Все полиморфные примеры использования@JsonTypeInfo для отображения на основе свойства в данных, но у меня нет этой опции в этом случае.

РЕДАКТИРОВАТЬ
Обновленный раздел кода:

@JsonProperty("rated")
public void setRating(JsonNode ratedNode) {
    JsonNode valueNode = ratedNode.get("value");
    // if the node doesn't exist then it's the boolean value
    if (valueNode == null) {
        // Use a default value
        this.rating = -1;
    } else {
        // Convert the value to an integer
        this.rating = valueNode.asInt();
    }
}

Ответы на вопрос(4)

Ваш ответ на вопрос