Java 无法从JSON文件加载值
因此,我尝试从JSON文件加载一些值:Java 无法从JSON文件加载值,java,json,Java,Json,因此,我尝试从JSON文件加载一些值: { Float : null , test : "hello" , Int : 2 } 但是,我下面的方法根本不起作用,也无法加载文件内容。当我尝试使用返回从文件加载的值的各种方法时,除了NPE之外,不会引发任何错误。知道我做错了什么吗 protected void load(String name, String path) throws FileAlreadyLoadedException{ if (get(name) == null){
{
Float :
null
,
test :
"hello"
,
Int :
2
}
但是,我下面的方法根本不起作用,也无法加载文件内容。当我尝试使用返回从文件加载的值的各种方法时,除了NPE之外,不会引发任何错误。知道我做错了什么吗
protected void load(String name, String path) throws FileAlreadyLoadedException{
if (get(name) == null){
final ThunderFile tf = new ThunderFile(name, path);
//files.add(tf);
try {
final JSONObject jobj = (JSONObject)new JSONParser().parse(new FileReader(path + File.separator + name + ".json"));
new Thread(){
public void run(){
Iterator<?> i = jobj.keySet().iterator();
while(i.hasNext()){
String key = (String) i.next();
Object value = jobj.get(key);
if (!key.equals("") && !value.equals("")){
tf.set(key, value);
}
}
files.add(tf);
System.out.println("[Thunderbolt 2] Loaded " + tf.getName() + ".json");
this.interrupt();
}
}.start();
} catch(IOException | ParseException e) {
e.printStackTrace();
}
}else{
throw new FileAlreadyLoadedException("The File " + name + ".json is already loaded!");
}
}
您的JSON包含
Float:null
soObject value=jobj.get(key)键Float
的code>为null
因此!value.equals(“”)
抛出NPE。那么,NPE到底在哪里抛出?你有堆栈跟踪吗?可能是因为您的JSON无效?这是无效的JSON。它的可能副本对另一个值的作用是相同的,而不仅仅是那个值。stacktrace比说“另一个值”更清楚。@jdv异常在线程“main”[Thunderbolt 2]在me.projectx.thunderbolt2.test.test.main(test.java:21)上加载了test.json java.lang.NullPointerException,这是一个类:@JeanLogeart检查我之前的注释;)不管Thunderbolt.get()在做什么,在本例中它都返回null。检查此方法的代码或API,从已知到未知进行工作。
{"Double":2.0}