По причинам, связанным с проектом, над которым я работаю, мне бы хотелось, чтобы весь запрос к файлу JSON содержался в виде строки, например, $.store.book[*].title
(а не чтобы временно сохранить каждый уровень документа как отдельный объект).JsonPath NoClassDefFoundError, или альтернатива JsonPath в Java
В настоящее время я использую JsonPath (версия 0.8.0, которая была последней, которую я смог найти), что в основном именно то, что я ищу, но я получаю исключение, показанное ниже. Я просто использую образец JSON, указанный на кодовой странице Google JsonPath, используя один из своих примерных запросов.
Что я здесь делаю неправильно? Альтернативно, если нет решения, есть ли альтернативы JsonPath в Java? Я хочу иметь возможность передать весь запрос в виде строки, и он должен быть в Java.
Функция:
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());
}
Исключение:
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:
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" +
"}";
Ага, это было! Большое спасибо! – firechant
Спасибо, stackoverflow: D – cegprakash
Спасибо, он работает для меня после добавления всех зависимостей. – Ravikumar11