인터넷에서 찾은이 예제를 실행하려고합니다. 다음 행에 도달하면 다음 오류로 종료됩니다. 오류 및 sample-json.txt가 예제 코드 아래에 붙여 넣어졌습니다. 나는 명백한 것을 놓치고 있는가?Java json 파싱 예외
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
열립니다 샘플-json.txt 파일입니다. 당신이 당신의 클래스 경로에서 commons-lang.jar
누락하고 있기 때문에처럼
{'foo':'bar',
'coolness':2.0,
'altitude':39000,
'pilot':{'firstName':'Buzz',
'lastName':'Aldrin'},
'mission':'apollo 11'}
맥 OSX 라이온의/System/Library/Java/Extensions에 jar 파일을 넣을 수있는 느낌이 들었습니다. 이 올바른지? 내 lang jar 파일로이 작업을 수행했지만 여전히 동일한 오류가 발생합니다. – Green
OSX에서'/ Users/yourname/Library/Java/lib'에 넣으십시오. – Mike
나는 다음을 사용하려고 시도했다 : commons-lang3-3.1.jar, 나는 commons-lang-2.6.jar로 바꾼다. 이제는 잘 동작한다. – Green