0

http://pastie.org/8269975。私のコードを見ると、account_id、hero_id などの個々のフィールドにアクセスする方法がわかりません。このコードがあります。

JSONObject match = getMatchDetails("281699681");

account_id などの個々のフィールドにアクセスしたい場合、このコードは機能しません。

int a = match.result.players[0].account_id;

助けてください。JSON スクリプトを見たい場合は、リンク https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/?match_id=281699681&key=8F48DE9EBF9C9EA121A6A9EF2E30B7C7をご覧ください。

4

3 に答える 3

0

まずは行を入れ替えてみて、

    String MatchDetailsURL = "https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/?match_id"+ matchID + "=&key=" + SteamWebAPIKey;

と、

    String MatchDetailsURL = "https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/?match_id="+ matchID + "&key=" + SteamWebAPIKey;

あなたのコードで試してみてください。

BCS、match_id="+ matchID + "&keyあなたが与えたのではなくmatch_id"+ matchID + "=&key..だから、URL自体が間違っていて、悪いリクエストを返します..

于 2013-08-26T05:19:47.907 に答える
0

このメソッドを試して、任意の json オブジェクトを動的に反復します。

private void parseJson(JSONObject data) {

        if (data != null) {
            Iterator<String> it = data.keys();
            while (it.hasNext()) {
                String key = it.next();

                try {
                    if (data.get(key) instanceof JSONArray) {
                        JSONArray arry = data.getJSONArray(key);
                        int size = arry.length();
                        for (int i = 0; i < size; i++) {
                            parseJson(arry.getJSONObject(i));
                        }
                    } else if (data.get(key) instanceof JSONObject) {
                        parseJson(data.getJSONObject(key));
                    } else {
                        System.out.println("" + key + " : " + data.optString(key));
                    }
                } catch (Throwable e) {
                    System.out.println("" + key + " : " + data.optString(key));
                    e.printStackTrace();

                }
            }
        }
    }
于 2013-08-26T04:49:55.490 に答える