没有从android中的json获取值

时间:2013-06-27 00:43:45

标签: android json

我正试图解析我的json:

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);
            }

但我最后的日志根本没有输出任何东西,所以我假设我没有正确解析我的json。我正在看的json是:

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

我想我可能错了:

json.getJSONArray("JSON") 

因为我的数组没有名字,但我必须带一个字符串......

1 个答案:

答案 0 :(得分:3)

我在你的JSON字符串中找不到'JSON'。所以我认为你应该这样写:

JSONArray jsonArray = new JSONArray(json);

然后:

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);
        }