Mike
Mike

Reputation: 6839

Not getting values from json in android

I am trying to parse my json with:

for(int i = 0; i < json.getJSONArray("JSON").length(); i++) {
                String taste = json.getJSONArray("JSON").getJSONObject(i).getString("taste");
                String rate = json.getJSONArray("JSON").getJSONObject(i).getString("rate");
                int foo = Integer.parseInt(rate);
                count = count + foo;


                //create object
                BeerTastes tempTaste = new BeerTastes(taste, rate);

                //add to arraylist
                tasteList.add(tempTaste);

                Log.d("taste",tempTaste.taste);
                Log.d("number",tempTaste.percent);
            }

But my logs at the end are not outputting anything at all so I assume I am not parsing my json correctly. The json I am looking at is:

[{"taste":"Bitter","rate":"13"},{"taste":"Malty","rate":"3"},{"taste":"Smooth","rate":"3"},{"taste":"Dry","rate":"1"}]

I think I may be wrong with:

json.getJSONArray("JSON") 

because my array doesnt have a name but I it has to take a string...

Upvotes: 1

Views: 106

Answers (1)

Jave
Jave

Reputation: 46

I find no 'JSON' in your JSON String.So i think you should write like this:

JSONArray jsonArray = new JSONArray(json);

then:

for(int i = 0; i < jsonArray.length(); i++) {
            String taste = jsonArray.getJSONObject(i).getString("taste");
            String rate = jsonArray.getJSONObject(i).getString("rate");
            int foo = Integer.parseInt(rate);
            count = count + foo;


            //create object
            BeerTastes tempTaste = new BeerTastes(taste, rate);

            //add to arraylist
            tasteList.add(tempTaste);

            Log.d("taste",tempTaste.taste);
            Log.d("number",tempTaste.percent);
        }

Upvotes: 3

Related Questions