I have a JSON String that I'm trying to parse into an array using the following code:
try {
String holder = getJSONString(getApplicationContext());
JSONArray JSONARR= new JSONArray(holder);
List<datatemp> dataList = new ArrayList<>();
for (int i = 0; i < JSONARR.length(); i++) {
JSONObject jsonObj = JSONARR.getJSONObject(i);
datatemp data = new datatemp();
data.ID = Integer.parseInt(jsonObj.getString("id"));
data.Open = Integer.parseInt(jsonObj.getString("Open"));
data.Close = Integer.parseInt(jsonObj.getString("Close"));
data.High = Integer.parseInt(jsonObj.getString("High"));
data.Low = Integer.parseInt(jsonObj.getString("Low"));
dataList.add(data);
}
} catch (JSONException e) {
Log.e("JSON_ERROR", "unexpected JSON exception", e);
}
but I keep getting the following error:
type org.json.JSONObject cannot be converted to JSONArray
The JSON String looks like this:
"data": [
{
"id": "0",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "1",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "2",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "3",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "4",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "5",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "6",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "7",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "8",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "9",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "10",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
}
]
}
I'm trying to parse the data so that later I can display it in a chart. I'm just trying to parse the JSON into a list so that the data can be split later into smaller lists (id,open,close,high,low) but I'm not sure if there is a better method.