簡體   English   中英

JSONArray中的Java JSONObjects循環

[英]Java JSONObjects Looping in JSONArray

我需要這樣的輸出JSON:

{
    "id": 171799578198,
    "name": "Forum Striking",
    "players": [
        {
          "avatar": {
            "userId": 21393,
            "currentHomeId": 21393,
            "clanId": 171799578198
          }
        },
        {
          "avatar": {
            "userId": 64425223942,
            "currentHomeId": 64425223942,
            "clanId": 171799578198
          }
        },
        {
          "avatar": {
            "userId": 17180463537,
            "currentHomeId": 17180463537,
            "clanId": 171799578198
          }
        }
    ]
}

每個"avatar":部分中的值將通過循環獲得。 我將如何形成這種JSON?

我有第一點:

{
  "id": 171799578198,
  "name": "Forum Striking"
}

但是我不確定要獲得球員名單需要做什么。

我正在使用Java-JSON庫。

您應該創建一個游戲,一個播放器和一個頭像對象。 游戲必須具有玩家列表,並且玩家必須具有頭像對象。

填充您的游戲對象,並通過如下所示的new Gson().toJson(game)將其轉換為Json。

Gson是一個Json庫(Google的Project),使用Json可以使開發人員的工作更輕松;)

public static void main(String[] args) throws IOException {

    Game game = new Game();
    game.setId(171799578198L);
    game.setName("Forum Striking");

    Avatar avatar = new Avatar();
    avatar.setUserId(21393L);
    avatar.setClanId(171799578198L);
    avatar.setCurrentHomeId(21393L);

    Player player = new Player();
    player.setAvatar(avatar);
    game.addPlayers(player);

    avatar = new Avatar();
    avatar.setUserId(64425223942L);
    avatar.setClanId(171799578198L);
    avatar.setCurrentHomeId(64425223942L);

    player = new Player();
    player.setAvatar(avatar);
    game.addPlayers(player);

    System.out.println(new Gson().toJson(game));
}

它打印:

{
  "id": 171799578198,
  "name": "Forum Striking",
  "players": [
    {
      "avatar": {
        "userId": 21393,
        "currentHomeId": 21393,
        "clanId": 171799578198
      }
    },
    {
      "avatar": {
        "userId": 64425223942,
        "currentHomeId": 64425223942,
        "clanId": 171799578198
      }
    }
  ]
}

游戲對象

public class Game {

    private Long id;
    private String name;
    private List<Player> players;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<Player> getPlayers() {
        return players;
    }

    public List<Player> addPlayers(Player player) {
        if (getPlayers() == null)
            setPlayers(new ArrayList<Player>());
        players.add(player);
        return players;
    }

    public void setPlayers(List<Player> players) {
        this.players = players;
    }
}

播放器對象,

public class Player {
    private Avatar avatar;

    public Avatar getAvatar() {
        return avatar;
    }

    public void setAvatar(Avatar avatar) {
        this.avatar = avatar;
    }
}

頭像對象

public class Avatar {
    private Long userId;
    private Long currentHomeId;
    private Long clanId;

    public Long getUserId() {
        return userId;
    }
    public void setUserId(Long userId) {
        this.userId = userId;
    }
    public Long getCurrentHomeId() {
        return currentHomeId;
    }
    public void setCurrentHomeId(Long currentHomeId) {
        this.currentHomeId = currentHomeId;
    }
    public Long getClanId() {
        return clanId;
    }
    public void setClanId(Long clanId) {
        this.clanId = clanId;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM