android - 在 Java Android 中解析 JSON 对象时出错
问题描述
在我的 Android 应用程序中,我正在获取锦标赛积分表的详细信息,以将输出转换为从 JSON 对象到 Java 的字符串
JSON对象如下所示:
{
"group": {
"Teams": [
{
"name": "Team 1",
"p": "10",
"w": "9",
"l": "1",
"points": "18"
},
{
"name": "Team 2",
"p": "10",
"w": "9",
"l": "1",
"points": "18"
},
{
"name": "Team 3",
"p": "10",
"w": "9",
"l": "1",
"points": "18"
},
{
"name": "Team 4",
"p": "10",
"w": "6",
"l": "4",
"points": "12"
},
{
"name": "Team 5",
"p": "10",
"w": "6",
"l": "4",
"points": "12"
},
{
"name": "Team 6",
"p": "10",
"w": "6",
"l": "4",
"points": "12"
},
{
"name": "Team 7",
"p": "10",
"w": "5",
"l": "5",
"points": "11"
},
{
"name": "Team 8",
"p": "10",
"w": "5",
"l": "5",
"points": "11"
}
]
}
}
Android Java 代码如下:
JSONObject match = new JSONObject(response);
if (match.has("group")) {
JSONObject group = match.getJSONObject("group");
if (match.has("Teams")) {
JSONObject teams = group.getJSONObject("Teams");
if (teams.has("0")) {
JSONObject teams_object = teams.getJSONObject("0");
String team_name = teams_object.getString("name");
String matches_played = teams_object.getString("p");
String matches_won = teams_object.getString("w");
String matches_lost = teams_object.getString("l");
String points = teams_object.getString("points");
}
}
}
但是我收到了错误,我通过 getMessage() 方法打印错误消息。这是下面的错误:
Error: Value ["name","p","w","l","points"] at header of type org.json.JSONArray cannot be converted to JSONObject
任何人都可以帮忙看看我哪里出错了或者解决方法是什么?提前致谢
解决方案
在您的 Json Teams 中包含对象数组并且您解析错误。试试这个
JSONObject jsonObject = new JSONObject(response);
JSONObject groups = jsonObject.getJSONObject("group");
JSONArray teams = groups.getJSONArray("Teams");
for(int i=0;i<teams.length();i++){
JSONObject obj = teams.getJSONObject(i);
name.append(obj.getString("name")+"\n");
}
推荐阅读
- python - 你能用参数元组创建方法吗?
- java - 无法在java中正确传递参数,只有String可以正常工作
- python - Python OpenCV cv2.waitKey(1) 导致视频窗口冻结/无响应
- android - MockWebServer Android 测试在 CI 上失败
- sql - 如何在不使用 SQL 中的多个连接条件的情况下获取同一行中的所有值?
- ios - Flutter Firebase Auth with Apple 不会注销
- for-loop - 迭代包含 mouseEvent 操作的 for 循环时发生异常
- sql - 向 Case When 语句添加一个简单的减法公式
- google-cloud-dataflow - Gcp 数据流处理无效数据
- python - 如何从 dxf 文件中提取所有坐标