为什么我的应用程序无法读取JSON文件?

时间:2017-12-25 13:35:24

标签: android json

我是Stackoverflow的新手,这是我的第一个问题 我正在开发一个应用程序,我从资源文件夹中读取json文件中的数据并将值存储在数组列表中 这是我的代码

   try {
        JSONObject object=new JSONObject(loadJSONFromAsset());
        String objec=object.getString("root");
        JSONObject object1=new JSONObject(objec);
        JSONArray array=object1.getJSONArray("child");
        for (int i=0;i<array.length();i++)
        {
            JSONObject jsonObject=array.getJSONObject(i);
            list.add(String.valueOf(jsonObject));

        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

    // Inflate the layout for this fragment
    return rootview;
}
public String loadJSONFromAsset() {
    String json = null;
    try {

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

}

这是我的json数据结构

 "root" : {
"child" : [ "data1","data2","data3",.......]},

我想要列表中的data1,data2值

2 个答案:

答案 0 :(得分:0)

试试这个

 try {
        JSONObject object=new JSONObject(loadJSONFromAsset());
        String objec=object.getString("root");
        JSONObject object1=new JSONObject(objec);
        JSONArray array=object1.getJSONArray("child");
        for (int i=0;i<array.length();i++)
        {
            list.add(array.getString(i));

        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

答案 1 :(得分:0)

 try {
    JSONObject object=new JSONObject(loadJSONFromAsset());
    String objec=object.getString("root");
    JSONObject object1=new JSONObject(objec);
    JSONArray array=object1.getJSONArray("child");
    for (int i=0;i<array.length();i++)
    {
        JSONObject jsonObject=array.getJSONObject(i);
        list.add(jsonObject.getString(i));

    }
} catch (JSONException e) {
    e.printStackTrace();
}