Java Как получить коллекцию (Список) указанных значений c в JsonObject содержит JSONArray - PullRequest
0 голосов
/ 11 апреля 2020

Я новичок в Java и у меня есть javabeans conatins

class Players{
@SerializedName("status")
@Expose
private String status;

@SerializedName("teamOne")
@Expose
private List<TeamOne> teamOne;

@SerializedName("teamTwo")
@Expose
private List<TeamTwo> teamTwo;

public String getStatus() {return status);}
public void setStatus(String status) {this.status = status;}

public List<TeamOne> getTeamOne(){ return teamOne:}
public setTeamOne(List<TeamOne> teamOne){ this.teamOne= teamOne:}

public List<TeamTwo> getTeamTwo(){ return teamTwo:}
public setTeamTwo(List<TeamTwo> teamTwo){ this.teamTwo= teamTwo;}

}

class TeamOne {
 @SerializedName("winningScore")
@Expose
private String winningScore;

@SerializedName("playerName")
@Expose
private String PlayerName;
}

class TeamTwo {
 @SerializedName("winningScore")
@Expose
private String winningScore;

@SerializedName("playerName")
@Expose
private String PlayerName;
}

Мой json возврат выглядит как

{
"status":"BestPlayers",
"teamOne":[
   {
   "winningScore":"11",
   "playerName":"John"
   },
   {
   "winningScore":"11",
   "playerName":"David"
   }
],
"teamTwo":[
  {
   "winningScore":"15",
   "playerName":"Victor"
  },
 {
  "winningScore":"15",
  "playerName":"Thomas"
  }
]
}

Теперь я пытаюсь получить список Имя игроков в обеих командах. который должен выглядеть [Джон, Дэвид, Виктор, Томас]

Я пытался некоторое время l oop, который мог l oop сколько угодно чисел на массивах, но не мог этого сделать, но получаю только первое Имена игроков и это все, я даже не смог достать до второго командного массива. Буду очень признателен за вашу помощь.

нужна помощь с этим кодом

1 Ответ

0 голосов
/ 11 апреля 2020

проблема с вашим классом модели POJO, она должна быть TeamDetails или Team

    class Players{
    @SerializedName("status")
    @Expose
    private String status;
    @SerializedName("teamOne")
    @Expose
    private List<Team> teamOne;

    @SerializedName("teamTwo")
    @Expose
    private List<Team> teamTwo;
}


  class Team {
     @SerializedName("winningScore")
    @Expose
    private String winningScore;

    @SerializedName("playerName")
    @Expose
    private String PlayerName;
    }

, теперь создайте финальный список игроков, таких как

private getTotalList(){
    List<Team> finalTeams=new ArrayList()
if(null!=teamOne && teamOne.size()>0){ // thats how your requirment will work
    finalTeams.add(teamOne)
}
//same goes for all teams add null check and add them.
 if(null!=teamTwo && teamTwo .size()>0){ // thats how your requirment will work
    finalTeams.add(teamTwo)
}



if(null!=funLovers && funLovers .size()>0){ 
        finalTeams.add(funLovers)
    }

        return finalTeams:
     }

, затем используйте foreach л oop

for(Team  team: finalTeams){
Log.d("playerName: ", team.PlayerName)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...