Z powodów związanych z projektem, nad którym pracuję, chciałbym, aby całe zapytanie do pliku JSON było przechowywane jako ciąg znaków, na przykład $.store.book[*].title
(zamiast konieczności tymczasowego przechowywania każdego poziomu dokumentu jako oddzielnego obiektu).JsonPath NoClassDefFoundError lub alternatywa dla JsonPath w Javie
Używam obecnie JsonPath (wersja 0.8.0, która była najnowszą możliwą do znalezienia), która jest dokładnie tym, czego szukam, ale otrzymuję wyjątek pokazany poniżej. Używam przykładowego JSON podanego na stronie kodowej Google'a JsonPath, używając jednego z ich przykładowych zapytań.
Co ja tu robię źle? Alternatywnie, jeśli nie ma rozwiązania, czy istnieją alternatywy dla JsonPath w Javie? Chcę móc przekazać całe zapytanie jako ciąg znaków i musi to być Java.
Funkcja:
public void testJsonPath() throws Exception
{
String query = "$.store.book[*].title";
List toRet = (List) JsonPath.read(practiceJson, query, new Filter[0]);
System.out.println(toRet.toString());
}
Wyjątek:
java.lang.NoClassDefFoundError: net/minidev/json/parser/ParseException
at com.jayway.jsonpath.spi.JsonProviderFactory$1.create(JsonProviderFactory.java:27)
at com.jayway.jsonpath.spi.JsonProviderFactory.createProvider(JsonProviderFactory.java:32)
at com.jayway.jsonpath.JsonPath.read(JsonPath.java:202)
at com.jayway.jsonpath.JsonPath.read(JsonPath.java:307)
at net.windward.datasource.test.TestJsonDataSource.testJsonPath(TestJsonDataSource.java:119)
JSON praktyka:
private String practiceJson = "{\n" +
" \"store\": {\n" +
" \"book\": [ {\n" +
" \"category\": \"reference\",\n" +
" \"author\": \"Nigel Rees\",\n" +
" \"title\": \"Sayings of the Century\",\n" +
" \"price\": 8.95\n" +
" }, {\n" +
" \"category\": \"fiction\",\n" +
" \"author\": \"Evelyn Waugh\",\n" +
" \"title\": \"Sword of Honour\",\n" +
" \"price\": 12.99\n" +
" }, {\n" +
" \"category\": \"fiction\",\n" +
" \"author\": \"Herman Melville\",\n" +
" \"title\": \"Moby Dick\",\n" +
" \"isbn\": \"0-553-21311-3\",\n" +
" \"price\": 8.99\n" +
" }, {\n" +
" \"category\": \"fiction\",\n" +
" \"author\": \"J. R. R. Tolkien\",\n" +
" \"title\": \"The Lord of the Rings\",\n" +
" \"isbn\": \"0-395-19395-8\",\n" +
" \"price\": 22.99\n" +
" } ],\n" +
" \"bicycle\": [ {\n" +
" \"color\": \"red\",\n" +
" \"price\": 19.95,\n" +
" \"style\": [ \"city\", \"hybrid\" ]\n" +
" }, {\n" +
" \"color\": \"blue\",\n" +
" \"price\": 59.91,\n" +
" \"style\": [ \"downhill\", \"freeride\" ]\n" +
" } ]\n" +
" }\n" +
"}";
Aha, to było to! Dziękuję Ci bardzo! – firechant
Dziękuję stackoverflow: D – cegprakash
Dziękuję, działa dla mnie po dodaniu wszystkich zależności. – Ravikumar11