【发布时间】:2020-09-08 17:11:51
【问题描述】:
我是 json 解析的新手,我正在尝试找出它返回 null 的原因。
这是我的 java 代码(如果你不熟悉 spigot api https://hub.spigotmc.org/javadocs/spigot/overview-summary.html)
你能告诉我我做错了什么吗?我将给出代码的 gson 部分,然后我将给出其余部分。如果您不想阅读 api,可以将其视为只是在控制台中输出 json。
try {
URL hypixel = new URL("https://api.hypixel.net/player?key=apikey&name=" + username);
URLConnection urlConn = hypixel.openConnection();
urlConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
urlConn.getDoOutput();
try(final BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()))) {
final JsonParser parser = new JsonParser();
parser.parse(reader.readLine());
final JsonObject object = parser.parse("").getAsJsonObject();
String userId = object.getAsJsonObject("player").get("_id").getAsString();
p.sendMessage(ChatColor.GREEN + "UID: " + userId);
}
} catch (IOException e) {
p.sendMessage(ChatColor.RED + "Something went wrong!");
}
(p.sendmessage 将是控制台中的内容)
所有代码如下:
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player p = (Player) sender;
if(command.getName().equalsIgnoreCase("hypixel")) {
if(args.length == 2) {
String username = args[0];
try {
URL hypixel = new URL("https://api.hypixel.net/player?key=apikey&name=" + username);
URLConnection urlConn = hypixel.openConnection();
urlConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
urlConn.getDoOutput();
try(final BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()))) {
final JsonParser parser = new JsonParser();
parser.parse(reader.readLine());
final JsonObject object = parser.parse("").getAsJsonObject();
String userId = object.getAsJsonObject("player").get("_id").getAsString();
p.sendMessage(ChatColor.GREEN + "UID: " + userId);
}
} catch (IOException e) {
p.sendMessage(ChatColor.RED + "Something went wrong!");
}
}
}
return false;
}
感谢您的帮助!
(哦,这是我要解析的 api 响应的一部分)
{"success":true,"player":{"_id":"5442f08f48b8f1e1e64a0400"}}
【问题讨论】:
标签: java api object gson minecraft