我正在尝试从JSON请求访问某些数据,但是我无法获得足够的数据来获取所需的信息。
我使用的网站:https://tibiadata.com/doc-api-v2/guilds/
很好的例子是“胫骨的一个特定行会”下的1。
我要获取的信息是公会->成员->字符下的名称/状态。
这是我到目前为止所做的:
JSONObject root = new JSONObject(sb.toString()); //Get the info into root
JSONObject guildArray = root.getJSONObject("guild"); //Get the info under "guild"
JSONArray members = guildArray.getJSONArray("members"); //Get the info unders members
此时
System.out.println(members.get(0));
会给
{"characters":[{"nick":"Coffee time","vocation":"Elite Knight","level":336,"joined":"2017-12-27","name":"Pelli Moulante","status":"online"}],"rank_title":"Leader"}
所以我唯一想念的部分是进入“字符”以获取名称/状态信息。
知道我在做什么错吗?
答案 0 :(得分:0)
members.get(0)
将返回成员JsonObject
JSONArray
{
"rank_title": "Ivory Guardian",
"characters": [
{
"name": "Tanthalas the Fourth",
"nick": "Legendary naab",
"level": 138,
"vocation": "Elder Druid",
"joined": "2008-06-17",
"status": "offline"
}, {
"name": "Bubbax",
"nick": "Deco man",
"level": 230,
"vocation": "Elder Druid",
"joined": "2014-08-29",
"status": "offline"
},
]
}
从中获取由characters
组成的JSONArray
,JsonObject
,然后使用for循环迭代JSONArray
for(Object obj : members.getJsonObject(0).getJSONArray("characters")) {
JSONObject p = (JSONObject) obj;
System.out.println(p.get("name");
System.out.println(p.get("status");
}