2013-06-27 64 views
1

從JSON值我試圖解析的json與:沒有得到Android中

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") 

,因爲我的數組可是沒有一個名字,但我它有一個字符串...

+0

那是_is_一個JSONArray。 – SLaks

+0

我知道,這就是爲什麼我使用getJSONArray()不確定你想要指出什麼。也許嘗試,並更具體一點。 – Mike

+0

這是[此問題的副本](http://stackoverflow.com/questions/10164741/get-jsonarray-without-array-name)。正如@SLaks提示的那樣,刪除每個'.getJSONArray(「JSON」)'它應該可以工作。 –

回答

3

我覺得沒有 'JSON' 在你的JSON String.So我想你應該這樣寫:

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