试图从android studio中的资源加载json

时间:2015-03-22 00:30:04

标签: java android json

这是我的代码:

public String loadJSONFromAsset() {
    String json = null;
    try {

        InputStream is = getAssets().open("index.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;

}

JSONObject object = new JSONObject(loadJSONFromAsset());

我在最后一行下划线错误:

JSONObject object = new JSONObject(loadJSONFromAsset());

话说:

  

未处理的异常org.json.JSONException

1 个答案:

答案 0 :(得分:1)

您将所有InputStream次操作包含在try阻止IOException的阻止中。错误告诉您的是,您需要将最后一行包装在捕获try的{​​{1}}块中。

您可以使用不同的JSONException块,但更好的设计是使用相同的try块,将该语句放在块中并捕获try以及JSONException在那个街区。然后让您的方法返回IOException而不是JSONObject