[英]Json String can't decode using json-simple toolkit java
[英]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.