gpt4 book ai didi

Java json解析异常

转载 作者:行者123 更新时间:2023-12-04 06:07:26 25 4
gpt4 key购买 nike

我正在尝试运行我在互联网上找到的这个示例。当它到达下一行时,它会因以下错误而终止。错误和示例 json.txt 粘贴在示例代码下方。我错过了一些明显的东西吗?

JSONObject json = (JSONObject) JSONSerializer.toJSON( jsonTxt ); 

进口:
package com.discursive.answers;

import java.io.InputStream;

import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;

import org.apache.commons.io.IOUtils;
public class JsonParsing {

public static void main(String[] args) throws Exception {
InputStream is = JsonParsing.class.getResourceAsStream( "sample-json.txt");
String jsonTxt = IOUtils.toString( is );

JSONObject json = (JSONObject) JSONSerializer.toJSON( jsonTxt );
double coolness = json.getDouble( "coolness" );
int altitude = json.getInt( "altitude" );
JSONObject pilot = json.getJSONObject("pilot");
String firstName = pilot.getString("firstName");
String lastName = pilot.getString("lastName");

System.out.println( "Coolness: " + coolness );
System.out.println( "Altitude: " + altitude );
System.out.println( "Pilot: " + lastName );
}
}


Error:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
Disconnected from the target VM, address: '127.0.0.1:59138', transport: 'socket'
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)
st 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 com.discursive.answers.JsonParsing.main(JsonParsing.java:28)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException

这是打开的 sample-json.txt 文件。
{'foo':'bar',
'coolness':2.0,
'altitude':39000,
'pilot':{'firstName':'Buzz',
'lastName':'Aldrin'},
'mission':'apollo 11'}

最佳答案

是的,这绝对是一个类路径问题。您可以在不存在第三方库的情况下编译您的项目,但是如果您的类路径中没有这些库,您将无法运行它。

我已将您的代码复制到我的本地系统并验证我收到了与您相同的(初始)异常。抢到后commons-lang-2.6.jar文件并将其放在我的类路径中,我现在收到以下异常:

$ java com.so.Q8187623
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at net.sf.json.AbstractJSON.<clinit>(AbstractJSON.java:53)
at net.sf.json.util.CycleDetectionStrategy.<clinit>(CycleDetectionStrategy.java:36)
at net.sf.json.JsonConfig.<clinit>(JsonConfig.java:65)
at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:84)
at com.so.Q8187623.main(Q8187623.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
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)
... 5 more

因此,只需按照您的方式向兔子洞添加类到您的类路径...

关于Java json解析异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8187623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com