我没有找到我的错误。 Eclipse告诉我:JSONArray类型中的方法getJSONObject(int)不适用于参数(String) 我想访问:matchdata - >目标 - >目标 - > goal_getter_name eclipse错误就在这一行:`JSONObject goal = openbuli.getJSONObject(“goal”); 我认为变量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
| | | | | )
| | | | )
| | | )
| | )
答案 0 :(得分: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());
}