@Override
    public Expression createExpression(Expression source, String expression, Object[] properties) {
        return doCreateJsonPathExpression(source, expression, properties, false);
    }
@Test
    public void testExpressionArray() {
        Exchange exchange = new DefaultExchange(context);
        exchange.getIn().setBody(new File("src/test/resources/books.json"));

        Language lan = context.resolveLanguage("jsonpath");
        Expression exp = lan.createExpression("$.store.book[*].author");
        List<?> authors = exp.evaluate(exchange, List.class);
        LOG.debug("Authors {}", authors);

        assertNotNull(authors);
        assertEquals(3, authors.size());
        assertEquals("Nigel Rees", authors.get(0));
        assertEquals("Evelyn Waugh", authors.get(1));
        assertEquals("John O'Niel", authors.get(2));

        exp = lan.createExpression("$.store.bicycle.price");
        String price = exp.evaluate(exchange, String.class);
        assertEquals("19.95", price, "Got a wrong result");
    }