Android 解析JSON数组的单个元素

Android 解析JSON数组的单个元素,android,json,Android,Json,我想解析一个json数组,并在android中获取它的各个元素。我的json文件在资产文件夹中。这是我的json类型: { "name":"hello", "data":[1,2,3,4] } 我想获取“data”键的元素,如“1”、“2”、“3”和“4”,以便将其添加到数组列表中。文件名为gaitData.json。我尝试了这种方法,但它无法读取数组“数据”的单个元素。请帮忙 InputStream is = MainActivity.this.getAssets().

我想解析一个json数组,并在android中获取它的各个元素。我的json文件在资产文件夹中。这是我的json类型:

{
   "name":"hello",
   "data":[1,2,3,4]
}
我想获取“data”键的元素,如“1”、“2”、“3”和“4”,以便将其添加到数组列表中。文件名为gaitData.json。我尝试了这种方法,但它无法读取数组“数据”的单个元素。请帮忙

     InputStream is = MainActivity.this.getAssets().open("gaitdata.json");
        int size = is.available();
        byte[] buffer = new byte[size];
        is.read(buffer);
        is.close();
        json=new String(buffer,"UTF-8");
        JSONObject object=new JSONObject(json);
        JSONArray hip_min=object.getJSONArray("hip_min");

在这一步之后,我使用for循环迭代hip_min数组,但这也不起作用。

您可以得到如下数组值

String jsonString = getAssetJsonData("gaitdata.json");
ArrayList<String> list = new ArrayList<>();
try {
    JSONObject jsonObject = new JSONObject(jsonString);
    JSONArray jsonArray = (JSONArray) jsonObject.get("data");
    if (jsonArray != null) {
            for (int i = 0; i < jsonArray.length(); i++) {
                String str = (String) jsonArray.get(i).getValue();
                list.add(str);
            }
    }
} catch (JSONException e) {
       e.printStackTrace();
}

您是想了解JSON的细节,还是只想尽快解析它?如果是后者,我建议:只想快速解析它!!就是这样,但是'jsonArray=(jsonArray)jsonObject.get(“data”);'会给我整个阵列是吗?我将如何访问其中的元素。我应该再次使用get方法。它还告诉我您键入的第一个代码的句柄异常,当我这样做时,它不会读取数据。感谢您的支持。现在我终于能够使用json解析数据了。为你竖起大拇指!!。
public String getAssetJsonData(String fileName) {
        String json = null;
        try {
            InputStream is = getAssets().open(fileName);
            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;
       }

        Log.e("data", json);
        return json;
    }