簡體   English   中英

java解碼json幫助(使用json-simple)

[英]java decode json help (using json-simple)

我知道要求做某事是不好的,但這是我第一次陷入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
        }
    ]

}
}

1:您的完整響應是JSON對象

2:如果有任何類似的內容

"some key name " : { " some value " }

這是一個JSON對象

3:如果像這樣寫任何元素

 "some key name " :  " some value " 

這是您可以通過json對象獲取的值

jsonObject.getString("key name")

4:如果寫入任何元素,例如

"some key name " : [ " some value " ]

那么這是一個JSON數組,您必須將其放入JSON ARRAY,然后遍歷其元素

jsonObject.getJSONARRAY("key name for JSON ARRAY IN RESPONSE ")

然后您可以遍歷JSON ARRAY的元素

`jsonArrayObj.get(0);`

看完您的問題之后,看來您有2個問題

要為此在線生成JSON,我建議您訪問此鏈接 這將生成所需的所需JSON。

對於解析json,請參見以下代碼,假設您已將此JSON響應放入了String Variable結果中

            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();
            }

您可以執行以下操作:

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

JSONObject jsonObject = (JSONObject) obj;

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

但是我建議使用gson 這要容易得多,並且有據可查。

使用與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);

暫無
暫無

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

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