Sunil
Sunil

Reputation: 49

How to Parse JSON without key value in android

Hi in my android application I'm receiving a JSON response from server and it has no key value for it,Now I should parse that JSON and that parsed data should be appended to a spinner. How to achieve that ? This is what I have tried

This is my JSON 

    [["Basic","Premium","svdsv","uymyimy"]] 


String url = "http://www.thetaf.com/TAFCycleStation/get_plans.php";

        try {

            JSONArray data = new JSONArray(getJSONUrl(url));

            List<String> list = new ArrayList<String>();


            for(int i = 0; i < data.length(); i++) 
            {
                JSONObject c = data.getJSONObject(i);

                list.add(c.getString("0"));
            }

            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
            dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            plans.setAdapter(dataAdapter);


        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    public String getJSONUrl(String url) {
        StringBuilder str = new StringBuilder();
        HttpClient client = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(url);
        try {
            HttpResponse response = client.execute(httpGet);
            StatusLine statusLine = response.getStatusLine();
            int statusCode = statusLine.getStatusCode();
            if (statusCode == 200) { // Download OK
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(content));
                String line;
                while ((line = reader.readLine()) != null) {
                    str.append(line);
                }
            } else {
                Log.e("Log", "Failed to download result..");
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return str.toString();
    }

Upvotes: 0

Views: 323

Answers (2)

Mohammed Imran N
Mohammed Imran N

Reputation: 1319

Try this.

       JSONArray obj = null;
        try {
            obj = new JSONArray(YOURJSON);
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        for (int i=0; i<obj.length(); i++){
            try {
                String extString  = (String) obj.get(i);
                System.out.println("Your string");
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

My JSON :

[ "a", "about", "above", "after", "again", "against", "all", "am", "an", "and", "any", "are", "aren't", "as", "at", "be", "because", "been", "before", "being", "below", "between", "both", "but", "by", "can't", "cannot"]

Upvotes: 0

fida1989
fida1989

Reputation: 3249

Try like the following:

try {
       JSONArray jsonArray1=new JSONArray(jsonString);
       JSONArray jsonArray2=jsonArray1.getJSONArray(0);
       for (int i = 0; i < jsonArray2.length(); i++) {
              String value=jsonArray2.getString(i);
              System.out.println(value);
       }
} catch (JSONException e) {
         e.printStackTrace();
}

Add the value to your list as required.

Upvotes: 3

Related Questions