android json多维数组
我在访问多维数组中的json数据时遇到问题。 我的代码在getJSONArray(“matchdata”)中运行良好 但是我无法访问matchdata->match\u results->match\u result[0]->result\u name 或 matchdata->goals->goal[0]->goal\u getter\u name 这是我的密码:android json多维数组,android,json,parsing,Android,Json,Parsing,我在访问多维数组中的json数据时遇到问题。 我的代码在getJSONArray(“matchdata”)中运行良好 但是我无法访问matchdata->match\u results->match\u result[0]->result\u name 或 matchdata->goals->goal[0]->goal\u getter\u name 这是我的密码: JSONObject json = null; json = jsonFunctions.getJSONf
JSONObject json = null;
json = jsonFunctions.getJSONfromURL("http://openligadb-json.heroku.com/api/matchdata_by_group_league_saison?group_order_id="+ group_order_id +"&league_saison="+ league_saison +"&league_shortcut=" + league_shortcut);
if (json != null){
try{
JSONArray openbuli = null;
openbuli = json.getJSONArray("matchdata");
mylist.clear();
for(int i=0;i<openbuli.length();i++){
HashMap<String, String> map = new HashMap<String, String>();
JSONObject e = openbuli.getJSONObject(i);
map.put("id", String.valueOf(i));
map.put("group_name", e.getString("group_name"));
map.put("name_team1", e.getString("name_team1"));
map.put("name_team2", e.getString("name_team2"));
map.put("points_team1", e.getString("points_team1"));
map.put("points_team2", e.getString("points_team2"));
map.put("halbzeit", e.getString("result_name"));
map.put("first", e.getString("name_team1") + " : " + e.getString("name_team2") + " " + points_team1 + " : " + points_team2);
map.put("second", e.getString("match_date_time"));
mylist.add(map);
}
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
}
我知道这应该是评论而不是回答,但由于声誉问题,我无法发表评论,所以我把它放在回答中 您可以使用库解析
JSON
响应
请提供您的JSON
响应,以便更容易理解
private static String readMultidimensionalArray(JsonReader reader) throws IOException {
StringWriter sw = new StringWriter();
JsonWriter jw = new JsonWriter(sw);
int arrayStack = 0;
do {
JsonToken t = reader.peek();
switch (t) {
case BEGIN_ARRAY:
reader.beginArray();
jw.beginArray();
arrayStack++;
break;
case END_ARRAY:
reader.endArray();
jw.endArray();
arrayStack--;
break;
case NUMBER:
double d = reader.nextDouble();
jw.value(d);
break;
default:
break;
}
} while (arrayStack != 0);
jw.flush();
jw.close();
return sw.toString();
}
这段代码只是将数组作为json字符串返回,但它可以适应任何需要的逻辑
示例输出:[[1.0,0.9,0.0,0.0],[0.9,0.8,0.0,0.0,0.0],[0.0,0.0,0.3,0.5],[0.0,0.0,0.5,0.7]您能提供响应JSON字符串吗。。。。。
private static String readMultidimensionalArray(JsonReader reader) throws IOException {
StringWriter sw = new StringWriter();
JsonWriter jw = new JsonWriter(sw);
int arrayStack = 0;
do {
JsonToken t = reader.peek();
switch (t) {
case BEGIN_ARRAY:
reader.beginArray();
jw.beginArray();
arrayStack++;
break;
case END_ARRAY:
reader.endArray();
jw.endArray();
arrayStack--;
break;
case NUMBER:
double d = reader.nextDouble();
jw.value(d);
break;
default:
break;
}
} while (arrayStack != 0);
jw.flush();
jw.close();
return sw.toString();
}