Android JSON数组解析
我如何用webrequest解析这个Json API,确切地说是“Players”元素: 我希望每次循环运行一个playername时都能解析我得到的结果,以便将其添加到listview中。 但我不知道如何像这样解析“Players”元素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
谢谢你的帮助 在这里使用新概念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);