Android JSON数组解析

Android JSON数组解析,android,json,api,webrequest,Android,Json,Api,Webrequest,我如何用webrequest解析这个Json API,确切地说是“Players”元素: 我希望每次循环运行一个playername时都能解析我得到的结果,以便将其添加到listview中。 但我不知道如何像这样解析“Players”元素 谢谢你的帮助 在这里使用新概念Retofit您不需要解析创建pojo类,请参阅下面的链接 您可以保存从JSON中删除了多少元素的索引。像 int索引=0 创建一个可以访问JSON的方法,并像 公共字符串getPlayerFromJsonAtIndex(inti

我如何用webrequest解析这个Json API,确切地说是“Players”元素:

我希望每次循环运行一个playername时都能解析我得到的结果,以便将其添加到listview中。 但我不知道如何像这样解析“Players”元素


谢谢你的帮助

在这里使用新概念Retofit您不需要解析创建pojo类,请参阅下面的链接


您可以保存从
JSON
中删除了多少元素的索引。像

int索引=0

创建一个可以访问
JSON
的方法,并像

公共字符串getPlayerFromJsonAtIndex(inti){…}

现在访问
JSON
字符串,并使用
JSONObject
对其进行解析(提示在开始时立即存储解析的Players数组)。让你像解析玩家数组一样

JSONArray players = (new JSONObject(jsonString))
  .getJSONArray("data")
  .get(0)
  .getJSONArray("Players");
现在从这里玩家
JSONArray
在提供的索引处获取字符串。像

{
  return (String)players.get(i);
}

希望这对您有所帮助,谢谢。

使用下面的代码解析响应

JSONObject objMain = new JSONObject(yourData);
        try {
            JSONArray respArray = objMain.getJSONArray("data");
            for(int i=0;i<respArray.length();i++)
            {
                JSONObject dataObj = respArray.getJSONObject(i);
                String id = dataObj.getString("id");
                -
                        -
                JSONArray arrayPlayer = dataObj.getJSONArray("players");
                for(int j=0;j<arrayPlayer.length();j++){
                    JSONObject playerObj = arrayPlayer.getJSONObject(j);
                    ---
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
JSONObject objMain=新的JSONObject(yourData);
试一试{
JSONArray respArray=objMain.getJSONArray(“数据”);

对于(inti=0;i,以下代码使用JSON字符串中的播放器填充列表

List<String> players = new ArrayList<>();

try {
    JSONObject jsonObj = new JSONObject(jsonString);
    JSONArray data = jsonObj.getJSONArray("data");
    JSONObject dataObj = data.getJSONObject(0);
    JSONArray playersJson = dataObj.getJSONArray("Players");

    for (int i = 0; i < playersJson.length(); i++) {
        players.add(playersJson.get(i).toString());
    }
} catch (JSONException e) {
    Log.e(TAG, e.getMessage());
}

谢谢,但是编译器在第行说:.getJSONArray(“Players”);:“无法解析方法…”,而不是使用adapter.notifyDataSetChanged();您是否尝试按我的方式设置适配器?是否有任何错误?如果有,请发布堆栈跟踪。我使用您的Listview适配器进行了尝试。没有更改,但我发现了错误,但我不知道如何解决。截击的响应完全为空。您确定正在填充播放器吗?您可以记录长度/内容吗要检查的列表的nts?此外,您应该在catch分支中放置一个log语句,以防引发异常。
List<String> players = new ArrayList<>();

try {
    JSONObject jsonObj = new JSONObject(jsonString);
    JSONArray data = jsonObj.getJSONArray("data");
    JSONObject dataObj = data.getJSONObject(0);
    JSONArray playersJson = dataObj.getJSONArray("Players");

    for (int i = 0; i < playersJson.length(); i++) {
        players.add(playersJson.get(i).toString());
    }
} catch (JSONException e) {
    Log.e(TAG, e.getMessage());
}
    ArrayAdapter<String> adapter;
    ListView listView = (ListView) findViewById(R.id.listView);
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, players);
    listView.setAdapter(adapter);