@Override
    protected Result[] run(String value) {
        final Map<String, Object> extractedJson;
        try {
            extractedJson = extractJson(value);
        } catch (IOException e) {
            throw new ExtractorException(e);
        }
        final List<Result> results = new ArrayList<>(extractedJson.size());
        for (Map.Entry<String, Object> entry : extractedJson.entrySet()) {
            results.add(new Result(entry.getValue(), entry.getKey(), -1, -1));
        }

        return results.toArray(new Result[results.size()]);
    }
@Test
    public void testRunWithArray() throws Exception {
        final String value = "{\"array\": [\"foobar\", \"foobaz\", null]}";
        final Extractor.Result[] results = jsonExtractor.run(value);

        assertThat(results).contains(new Extractor.Result("foobar, foobaz", "array", -1, -1));
    }