i am trying to call an URL and afterwards to save the results of the URL into a database.
The call of the URL is working and i also am able to save the result into JSON objects/arrays.
This is my code so far:
JSONParser parser = new JSONParser();
try
{
// responseString is the answer i get from calling the URL.
// It's pretty long that's why i don't copy it in here now
// But you can call this URL to see what the result is:
// http://www.gw2spidy.com/api/v0.9/json/items/all/1?filter_ids=29169,29185
Object objToParse = parser.parse(responseString);
JSONObject jsonObject = (JSONObject) objToParse;
JSONArray array = (JSONArray) jsonObject.get("results");
// Until here everything is ok, the results get saved into the array
JSONObject mJsonObject = new JSONObject();
for (int i = 0; i < array.length() ; i++)
{
mJsonObject = (JSONObject)array.get(i);
System.out.println(mJsonObject);
}
}
catch(ParseException pe)
{
System.out.println("position: " + pe.getPosition());
System.out.println(pe);
}
When i try to run this i get an error when i try to loop through the array:
Exception in thread "main" java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to java.lang.CharSequence
I already searched for solutions but i cannot find or understand what is causing the error for me, would be nice if someone can help me here..
JSONArray array = (JSONArray) jsonObject.get("results");. Much more readable form isJSONArray array = jsonObject.getJSONArray("results");. Same aboutarray.getJSONObject(i).