尝试读取本地JSON文件时遇到严重问题。我现在已经到处寻找了很多天,我能得到的最好和最远的是从法赞的回答中复制。 Reading a json file in Android
为什么Android Studio不允许我在这里生成第二个try-catch代码块?
非常感谢帮助和建议!!
这是My code
public String loadJSONFromAsset() {
String json = null;
try {
InputStream is = getAssets().open("names.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}
String jsonString = loadJSONFromAsset();
try {
JSONObject json = new JSONObject(jsonString);
JSONObject jObject = json.getJSONObject("female");
JSONObject jObject2 = jObject.getJSONObject("adult");
String name = jObject2.toString();
}
catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
为什么Android Studio不会让我生成第二个 try-catch代码块在这里?
简单地说,因为你的代码不在方法中。
执行以下操作可以解决错误。
public void someMethodIdentifier(){ // doesn't have to be void return type, you know better than me what type you want to return.
String jsonString = loadJSONFromAsset();
try {
JSONObject json = new JSONObject(jsonString);
JSONObject jObject = json.getJSONObject("female");
JSONObject jObject2 = jObject.getJSONObject("adult");
String name = jObject2.toString();
}
catch (Exception e) {
e.printStackTrace();
}
}
注意 - 根据try
块中包含的语句的外观,我认为您打算返回一些数据?如果是这种情况,只需用适当的返回类型替换void
返回类型并返回该数据。