SANJOY DASGUPTA
SANJOY DASGUPTA

Reputation: 95

Fetching array from json not working

Currently I am working with a project where I need to get some data from remote server as JSON then need to extract array. Here I am getting data successfully, But problems are near while loop.

I am getting data from remote server successfully. For example my remote url giving output as:

{"id": "1","amount": "1000","course_code": "BASIC","course": "Basic Course","content": "Sample","thumb": "sample.png"},
{"id": "2","amount": "2000","course_code": "ADVANCED","course": "Advanced Course","content": "Sample","thumb": "sample.png"}`

Code

try {
        ur = "http://localhost/getsample.php";
        URL url = new URL(ur);
        HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
        InputStream inputStream = httpURLConnection.getInputStream();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String line="";




        while (line !=null){
            line = bufferedReader.readLine();
            data = data+line;
        }
        data = data.replace("null", "");

        JSONArray JA = new JSONArray(data);
        for (int i=0;i<JA.length();i++){
            JSONObject JO = (JSONObject) JA.get(i);
 idArray = idArray + JO.get("id") + ",";
            amountArray = amountArray + JO.get("amount") + ",";
            course_codeArray = course_codeArray + JO.get("course_code") + ",";
            courseArray = courseArray + JO.get("course") + ",";
            contentArray = contentArray + JO.get("content") + ",";
            thumbArray = thumbArray + JO.get("thumb") + ",";
        }


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

Upvotes: 0

Views: 53

Answers (2)

The data you get from the server are at JSON format but they are not Array . this is an object ,

{"id": "1","amount": "1000","course_code": "BASIC","course": "Basic Course","content": "Sample","thumb": "sample.png"},{"id": "2","amount": "2000","course_code": "ADVANCED","course": "Advanced Course","content": "Sample","thumb": "sample.png"}

So you have to loop inside the json object like

for (var key in jsonResponse) {
    if (jsonResponse.hasOwnProperty(key)) {
        console.log(key + " -> " + jsonResponse[key]);
    }
}

EDIT : If you have multiple Objects inside an object you have to loop inside them ( external for) like for(var i in JsonObject)

Upvotes: 1

Sandeep Parish
Sandeep Parish

Reputation: 2238

Your Code is should be like According to your current Response

try{
 JSONObject jso = new JSONObject(data);
            amountArray =jsonObject.getString("amount");
            course_codeArray =jsonObject.getString("yourNextKey");
            courseArray = jsonObject.getString("yourNextKey");
            contentArray = jsonObject.getString("yourNextKey");
            thumbArray = jsonObject.getString("yourNextKey");
        }
 catch (JSONException e) {
            e.printStackTrace();
        }

Upvotes: 0

Related Questions