Я использую внутреннюю библиотеку, которая предоставляет API для анализа значения json. Этот API предоставляет com.fasterxml.jackson.core.JsonParser
для использования, который уже создан с соответствующим json потоком для чтения. Теперь, как мне определить размер массива, предполагая, что поток json, который этот экземпляр JsonParser анализирует, является объектом массива.
Я могу найти способ, создав экземпляр ObjectMapper с помощью этого экземпляра JsonParser, и создать контейнерный класс java со списком в нем (представляющий массив) и, наконец, определить размер. Мне было интересно, если это возможно сделать это только с JsonParser без использования ObjectMapper.
class ResultContainer {
private List<Object> result;
public List<Object> getResult() {
return result;
}
public void setResult(List<Object> result) {
this.result = result;
}
}
----
void parseEntity(JsonParser parser) {
ObjectMapper om = new ObjectMapper();
ResultContainer rc = om.readValue(parser, ResultContainer.class);
System.out.println(rc.getResult().size());
}
В вышеприведенном примере есть способ, которым я могу получить размер массива только с помощью JsonParser, без использования ObjectMapper и, следовательно, без создания фиктивного контейнера java класса.