Android 解析JSON数组的单个元素
我想解析一个json数组,并在android中获取它的各个元素。我的json文件在资产文件夹中。这是我的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().
{
"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;
}