0

エラーが見つかりません。Eclipse から教えてください: タイプ JSONArray のメソッド getJSONObject(int) は、アクセスしたい引数 (文字列) には適用できません: matchdata -> goal -> goal -> goal_getter_name Eclipse エラーは次の行にあります: `JSONObject goal = openbuli.getJSONObject("ゴール"); 変数 openbuli が間違っていると思いますか?! どのように修正する必要がありますか?

これが私のコードです:

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

1 に答える 1

1

openbuli.getJSONObject("goal");openbuli.getJSONObject(0);に変更する必要があります。
getJSONObject("goals") を追加して、配列の最初の場所からオブジェクトのゴールを取得します

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());
                        }
于 2013-08-20T12:38:18.453 に答える