Вы должны выбрать, хотите ли вы «нетипизированный» (Карты, Списки, обертки), которые достаточно легко получить:
Map<String,Object> map = new ObjectMapper().readValue(json, Map.class);
или POJO. Дело в том, что mapper действительно не может знать, что вы хотите, чтобы «userInfo» отображал определенный объект, а другие значения - что-то еще.
Но я бы предпочел просто создать другой класс, например:
public class Request {
public int sc;
public String message;
public User userInfo;
// and/or getters, setters, if you prefer
}
и привязать к этому:
Request req = new ObjectMapper().readValue(json, Request.class);
Зачем связываться с неудобными Картами, когда вы можете иметь настоящие POJO, верно? :)