2013-08-20 36 views
0

我没有找到我的错误。 Eclipse告诉我:JSONArray类型中的方法getJSONObject(int)不适用于参数(字符串) 我想访问:matchdata - > goals - > goal - > goal_getter_name eclipse错误在这一行上:`JSONObject goal = openbuli.getJSONObject(“goal”); 我认为变量openbuli ist错了?! 我该如何解决它?android:JSONArray类型的getJSONObject(int)方法不适用于参数(字符串)

这里北京时间我的代码:

String result = ""; 
SONObject jArray = null; 

jArray = new JSONObject(result); 

       JSONObject json = (JSONObject) jArray;     
       JSONArray openbuli = json.getJSONArray("matchdata"); 

       JSONObject goal = openbuli.getJSONObject("goal"); 
       JSONArray goals = goal.getJSONArray("goals");   

       // loop array 
       for(int i=0;i<goals.length();i++) {  
           JSONObject e = goals.getJSONObject(i); 
           Log.e("Name", e.getString("goal_getter_name").toString()); 
         } 

这里JSON数据:

$json (
| matchdata => Array (9) 
| (
| | ['0'] (
| | | league_saison = "2013" 
| | | match_results (
| | | | match_result => Array (2) 
| | | | (
| | | | | ['0'] (
| | | | | | result_name = "Endergebnis" 
| | | | | | result_order_id = "1" 
| | | | | | points_team1 = "3" 
| | | | | | result_type_name = "nach 90 Minuten" 
| | | | | | points_team2 = "1" 
| | | | | | result_type_id = "2" 
| | | | | ) 
| | | | ) 
| | | ) 
| | | goals (
| | | | goal => Array (4) 
| | | | (
| | | | | ['0'] (
| | | | | | goal_match_minute = "16" 
| | | | | | goal_getter_id = "5112" 
| | | | | | goal_id = "21118" 
| | | | | | goal_getter_name = "Mario Mandzukic" 
| | | | | | goal_mach_id = "23711" 
| | | | | | goal_penalty = FALSE 
| | | | | | goal_score_team1 = "2" 
| | | | | | goal_own_goal = FALSE 
| | | | | | goal_score_team2 = "0" 
| | | | | | goal_overtime = FALSE 
| | | | | ) 
| | | | ) 
| | | ) 
| | ) 
+1

你不能做到这一点'openbuli.getJSONObject(“目标”)中;'你必须给该方法是数组的索引。例如:'openbuli.getJSONObject(1);' – ZeusNet

回答

1

您需要更改openbuli.getJSONObject("goal");到openbuli.getJSONObject(0);
并添加getJSONObject(“目标”),以获得从首位的目标对象数组

String result = ""; 
SONObject jArray = null; 

jArray = new JSONObject(result); 

       JSONObject json = (JSONObject) jArray;     
       JSONArray openbuli = json.getJSONArray("matchdata"); 

       JSONObject goal = openbuli.getJSONObject(0); 
       JSONArray goals = goal.getJSONObject("goals").getJSONArray("goal");   

       // loop array 
       for(int i=0;i<goals.length();i++) {  
           JSONObject e = goals.getJSONObject(i); 
           Log.e("Name", e.getString("goal_getter_name").toString()); 
         } 
+0

是的,那就修复它。谢谢! – sarahsdev

相关问题