When you parse JSON, what is the reason to choose special classes for structure (and sometimes data units) instead of using Java-native equivalents?
Also, using POJOs can lead to more readable type signatures - it's easier to determine what the method getBooks of the Author POJO that returns List<Book> is about than a Map<String, Object> that has a List<Map<String, Object>> mapped to the key "books".
Bit of an impedance mismatch between a serialisation format from a dynamically typed language and a statically typed language.