Чтобы десериализовать строку JSON в список классов, можно использовать различные способы, перечисленные в вопрос StackOverflow
Тип 1(ссылка на документы):
List someClassList = mapper.readValue(jsonString, typeFactory.constructCollectionType(List.class, SomeClass.class));
Тип 2(ссылка на документы):
List list = mapper.readValue(jsonString, new TypeReference>() { });
Хотя оба вышеперечисленных типа выполняют свою работу, в чем разница между этими реализациями?