ciao andbin!

sto provando seguendo il tuo consiglio.
ho modificato la classe Book:
codice:
public class Book {

    private String id;
    private String title;
    private String author;
    private String editor;
    private String price;
    private String isbn;
    private String note;        // GETTER E SETTER
}
poi ho modificato così:
codice:
public class ReadJson {

    private final Gson gson;

    public ReadJson() {
        gson = new Gson();
    }

    public <T> List<T> readJson(File file, Class<T> type) throws IOException {
        TypeToken<List<T>> listTypeToken = new TypeToken<List<T>>(){};
        JsonReader reader = new JsonReader(new FileReader(file));
        List<T> list = gson.fromJson(reader, listTypeToken.getType());

        /*ArrayList<T> list = new ArrayList<>();
        JsonParser parser = new JsonParser();
        try (BufferedReader bf = new BufferedReader(new FileReader(file))) {
            JsonArray jarray = parser.parse(new JsonReader(bf)).getAsJsonArray();
            for (JsonElement e : jarray) {
                T element = gson.fromJson(e, type);
                list.add(element);
            }
        }*/
return list;
    }
}
però ottengo questo errore:
codice:
Caused by: java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to com.mp.book.Book
ma ad essere sincero non ho ben capito...