在Java中解析JSON字符串

时间:2011-12-02 09:12:01

标签: java json

我正在尝试用Java解析JSON字符串,但我无法弄清楚如何! 我现在正在使用lib-JSON:

import net.sf.json.*;

String jsonStr = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";
JSONObject jsonObj = (JSONObject) JSONSerializer.toJSON(jsonStr); // this line crashes

我没有编译错误但是当我运行该程序时它说:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at ircbot.plugins.SiteTitle.<init>(SiteTitle.java:28)
    at ircbot.Main.main(Main.java:10)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 14 more
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

听起来我错过了一些依赖,但我不知道如何找出是否或哪个!

提前致谢!

6 个答案:

答案 0 :(得分:2)

似乎你没有为类“org.apache.commons.lang.exception.NestableRuntimeException”导入需要的jar文件

我们在Java程序中使用了许多类,而Java没有这些类。所以我们需要为他们提供适合的Jar文件。

答案 1 :(得分:2)

我建议grepcode 只需输入类名,即可获得已知版本的jar列表示例:here

答案 2 :(得分:1)

You are missing jar file. No jar file in your class path. 

请参阅此Reading JSON file error

答案 3 :(得分:0)

org / apache / commons / lang - &gt; http://commons.apache.org/lang/ 基本上,使用Google并获得相应的jar。

答案 4 :(得分:0)

您的JSON字符串也无效,这是有效的JSON,

{"string": "JSON","integer": "1","double": "2.0","boolean": "true" }

答案 5 :(得分:0)

这些是依赖项 -

  1. jakarta commons-lang 2.5
  2. jakarta commons-beanutils 1.8.0
  3. jakarta commons-collections 3.2.1
  4. jakarta commons-logging 1.1.1
  5. ezmorph 1.0.6
  6. 您确定在类路径中添加了所有这些内容。