Вам нужно проанализировать его как JsonNode
, выполнить итерацию по каждому узлу в массиве и преобразовать в Book
:
ObjectMapper mapper = new ObjectMapper();
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
JsonNode root = mapper.readTree(json); // read as JsonNode
JsonNode items = root.at("/items");
List<Book> books = new ArrayList<>();
if (items.isArray()) {
ArrayNode array = (ArrayNode) items;
array.forEach(n -> {
Book book = mapper.convertValue(n.get("volumeInfo"), Book.class); // convert to Book
books.add(book);
});
}
System.out.println(books);
Меняйте его.
Имейте Близко (), называют это. Расположите () и вставьте логику Расположение () метод вместо Завершения () метод.
-------------------Дальнейшая информация после редактирования---------------
Кроме того, изменяя объявление на:
public void Dispose()
должен избавиться от другой ошибки. Так как у Вас есть объявленный как:
void IDisposable.Dispose()
Это не отмечено как общественность и изолировано, и FxCop жалуется. Лично, я предпочитаю добираться, избегают ошибок вместо того, чтобы подавить их.
Как я подавляю предупреждения?
SuppressMessage () только работает при определении флага CODE_ANALYSIS как символа условной компиляции.