我知道要求制作东西很糟糕,但这是我第一次陷入java。最近我开始学习java,对于我的小工具,我需要阅读这个json字符串。
我正在寻找半天,并努力使事情发挥作用,并建立简单的json。
但我不能这样做。 请帮忙。
例如,只需将steamid和communityvisibilitystate检索为字符串
即可String steamid = ...;
String communityvisibilitystate = ...;
如果你有更好的解决方案,不使用json-simple post it
{
"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
}
]
}
}
答案 0 :(得分:2)
1:您的完整回复是JSON OBJECT
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);`
答案 1 :(得分:1)
阅读完问题后。似乎你有2个问题
要在线生成JSON,我建议您访问此Link。这将生成所需的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();
}
答案 2 :(得分: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。它更容易,并且有很好的文档记录。
答案 3 :(得分:0)
创建一个类结果,其结构与json响应完全相同(例如,参见下面的结构)
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);