GSON阵列保持为空

时间:2018-10-19 06:55:48

标签: java json gson

我有此代码

  String link;
    link = "https://na1.api.riotgames.com/lol/league/v3/positions/by-summoner/"+sumID+"?api_key=RGAPI-a7247558-20d7-4b0a-9009-6e3db2986a44";
    URL url = new URL(link);
    BufferedReader in = new BufferedReader(
            new InputStreamReader(url.openStream()));

    String inputLine;
    String inputLine2;
    inputLine = in.readLine();

    in.close();

    Gson code = new Gson();

    sumStatsArray[] rank = code.fromJson(inputLine,sumStatsArray[].class);
   String account = code.toJson(rank);
    //String account = code.toJson(rank.sumStats.get(0).tier) + " " + code.toJson(rank.sumStats.get(0).rank);
    System.out.println(account);
    System.out.println(link);
    System.out.println(inputLine);

打印帐户的结果如下:[{}]

它只是保持为空,inputline包含整个json,但出于某种原因将无法工作。

sumStatsArray类看起来像这样

import java.util.ArrayList;

public class sumStatsArray {

    ArrayList<sumStats> sumStats;

}

这是json

https://imgur.com/a/2Ly5OdC

edit ::查看从未使用过sumStats(在数组列表之后)的代码。也许那就是问题?我不知道如何使用它。

1 个答案:

答案 0 :(得分:0)

我写了一个简单的示例来测试gson。

用户实体

public class User {
    private String name;

    public String getName() {
        return name;
    }

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

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
        }
    }
}

客户代码在这里

public class GsonClient {
    public static void main(String[] args) {
        String usersJson = "[ { \"name\": \"henry\" }, { \"name\": \"justin\" } ]";
        Gson gson = new Gson();
        User[] users = gson.fromJson(usersJson, User[].class);
        for (User user : users) {
            System.out.println(user);
        }
    }
}

输出如下。

User{name='henry'} User{name='justin'}