Per ragioni correlate al progetto su cui sto lavorando, vorrei un'intera query in un file JSON da tenere come stringa, ad esempio, $.store.book[*].title
(anziché dover memorizzare temporaneamente ciascun livello del documento come oggetto separato).JsonPath NoClassDefFoundError o un'alternativa a JsonPath in Java
Attualmente sto usando JsonPath (versione 0.8.0, che era l'ultima che ho trovato), che è fondamentalmente esattamente quello che sto cercando, ma sto ricevendo l'eccezione mostrata di seguito. Sto solo utilizzando il JSON di esempio fornito nella codepage di google di JsonPath, utilizzando una delle loro query di esempio.
Cosa sto facendo di sbagliato qui? In alternativa, se non c'è una soluzione, ci sono alternative a JsonPath in Java? Voglio essere in grado di passare un'intera query come una stringa, e deve essere in Java.
La funzione:
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());
}
L'eccezione:
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)
Il JSON pratica:
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, era così! Grazie mille! – firechant
Grazie stackoverflow: D – cegprakash
Grazie, funziona per me dopo aver aggiunto tutte le dipendenze. – Ravikumar11