Как проанализировать массив строк JSON?

#java #json #jackson

Вопрос:

Мне нужно проанализировать массив строк (идентификаторов) с помощью Джексона. Я не нашел ни одного примера этого в Интернете, все они показывают, как десериализовать массивы объектов какого-либо класса, но мне нужно просто проанализировать массив строк (без написания для него класса модели), как я могу это сделать? Пример JSON:

 [
"UUID",
"UUID",
...
]
 

Комментарии:

1. Видишь twilio.com/blog/java-json-with-jackson , «примеры древовидной модели».

Ответ №1:

Вы можете использовать ObjectMapper.readValue() метод с a TypeReference , чтобы получить список строк:

 import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.List;

public class Test {
    public static void main(String[] args) throws IOException {
        String json = "["UUID","UUID"]";
        ObjectMapper mapper = new ObjectMapper();
        List<String> values = mapper.readValue(json,
                new TypeReference<List<String>>() {});
    }
}
 

Или вы можете использовать ObjectMapper.readValue() метод с String[].class целью получения массива строк:

 import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;

public class Test {
    public static void main(String[] args) throws IOException {
        String json = "["UUID","UUID"]";
        ObjectMapper mapper = new ObjectMapper();
        String[] values = mapper.readValue(json, String[].class);
    }
}