-1

何かを作るように頼むのが悪いことは知っていますが、Javaで立ち往生したのは初めてです。最近、私は Java を学び始めました。私の小さなツールでは、この json 文字列を読み取る必要があります。

半日、私は検索して物事を機能させようとし、json-simple を設立しました。

しかし、私はこれを行うことはできません。助けてください。

たとえば、steamid と communityvisibilitystate を文字列に取得するだけです

String steamid = ...;
String communityvisibilitystate = ...;

json-simpleを使用しないより良い解決策がある場合は、投稿してください

{
"response": {
    "players": [
        {
            "steamid": "76561198777777777",
            "communityvisibilitystate": 3,
            "profilestate": 1,
            "personaname": "777777",
            "lastlogoff": 7777777777,
            "profileurl": "http://steamcommunity.com/profiles/76561198777777777/",
            "avatar": "http://media.steampowered.com/steamcommunity/public/images/avatars/16/777777777.jpg",
            "avatarmedium": "http://media.steampowered.com/steamcommunity/public/images/avatars/16/777777777_medium.jpg",
            "avatarfull": "http://media.steampowered.com/steamcommunity/public/images/avatars/16/777777777_full.jpg",
            "personastate": 0,
            "primaryclanid": "103582797777777777",
            "timecreated": 7777777777
        }
    ]

}
}
4

4 に答える 4

1

あなたの質問を読んだ後、あなたには2つの問題があるようです

そのためにJSONをオンラインで生成するには、このリンクにアクセスすることをお勧めします。これにより、必要な JSON が生成されます。

json を解析するには、以下のコードを参照してください。この JSON 応答を文字列変数の結果に入れたとします。

            String result = "yourresponse";

            try {
                JSONObject object = new JSONObject(result);
                JSONObject object1 = object.getJSONObject("response");
                JSONArray arr = object1.getJSONArray("Players");
                for (int i = 0; i < arr.length(); i++) 
                {
                      JSONObject object3 = arr.getJSONObject(i);
                      String steamId = object3.getString("steamid");
                      String communityvisibilitystate = object3
                        .getString("communityvisibilitystate");
                }

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
于 2013-10-15T11:12:29.503 に答える
0

次のようなことができます:

Object obj = parser.parse(new FileReader("c:\\test.json"));

JSONObject jsonObject = (JSONObject) obj;

String steamid= (String) jsonObject.get("steamid");
System.out.println(steamid);

しかし、gsonを使用することをお勧めします。それははるかに簡単で、十分に文書化されています。

于 2013-10-15T11:04:47.983 に答える
0

json 応答とまったく同じ構造を持つクラス Result を作成します (たとえば、以下の構造を参照)。

class Result {
    class Response {
        list of (<class Players> {
             String steamid
             String communityvisibilitystate
             String profilestate
             String personaname
             String lastlogoff
             String profileurl
             String avatar
             String avatarmedium
             String avatarfull
             String personastate
             String primaryclanid
             String timecreated
             })
       }
   }
}

次に、gsonを使用して、このように json を解析します。

Result pareseJson = new Gson().fromJson(jsonString, Result.class);
于 2013-10-15T11:08:20.927 に答える