无法从 JSON 文件加载值
Cannot Load Values From JSON File
所以,我正在尝试从 JSON 文件加载一些值:
{
Float :
null
,
test :
"hello"
,
Int :
2
}
但是,我下面的方法根本不起作用,也没有加载文件内容。当我尝试使用从文件加载 return 值的各种方法时,除了 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!");
}
}
编辑:
澄清一下,没有加载任何值,即使我的文件看起来像这样:
{"Double":2.0}
您的 JSON 包含 Float: null
所以 Object value = jobj.get(key);
键 Float
是 null
.
因此 !value.equals("")
抛出 NPE。
所以,我正在尝试从 JSON 文件加载一些值:
{
Float :
null
,
test :
"hello"
,
Int :
2
}
但是,我下面的方法根本不起作用,也没有加载文件内容。当我尝试使用从文件加载 return 值的各种方法时,除了 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!");
}
}
编辑: 澄清一下,没有加载任何值,即使我的文件看起来像这样:
{"Double":2.0}
您的 JSON 包含 Float: null
所以 Object value = jobj.get(key);
键 Float
是 null
.
因此 !value.equals("")
抛出 NPE。