Parse JSON using JsonPath in Java

2019-05-12 09:11发布

问题:

I am new to Json-Path.

I have included: json-path-0.8.0.jar in my eclipse build path.

I copied JSON from: http://code.google.com/p/json-path/ to file.

and I am trying to parse this file and display an authors name using:

String jsonPath = "$.store.book[1].author";

File jsonFile = new File("C:\\ServicesTest\\jsonresponse2.json");

System.out.println("Author: "+JsonPath.read(jsonFile, jsonPath));

I am getting this error:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/Validate
at com.jayway.jsonpath.JsonPath.read(JsonPath.java:304)
at office.jsonPathparse.main(jsonPathparse.java:34)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.Validate
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more

I have also inculded: org.apache.commons.lang-2.6.jar But I am still getting the error. Am I missing something here ?

Found the problem: I have to add following jar's to path:

json-path-0.8.0.jar

commons-lang-2.6.jar

commons-io-2.1.jar

json-smart-1.1.jar

I was missing the last 2.

回答1:

You may be missing the import statements, or the library jar file is not actually added to your classpath correctly. NoClassDefFoundError means java can't find the class that is referenced in your code...