java - 为什么说这不是 json 对象?
问题描述
我是 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"}}
解决方案
parser.parse("").getAsJsonObject()
期望""
是 JSON,但事实并非如此。
推荐阅读
- sqlite - 无法完全读取 Firefox OS indexeddb 进行备份
- c# - 为什么用预制件替换游戏对象时,预制件位置有点靠后,而不是完全在游戏对象位置上?
- c++ - 在 C++ 中声明向量时出现意外错误
- python - Python + Pygame;screen.fill() 崩溃窗口
- rest - 颤振http帖子“类型'int'不是类型转换中'String'类型的子类型”
- linux - 为什么 echo $'\n' 打印 2 个新行?
- redux - 获取 'bundle.js:1 Uncaught SyntaxError: Unexpected token '<' in react/redux app
- java - 如何从计数器应用程序中的 sharedpreferences 编号中进行计数
- javascript - 如何在 Node.js Web 服务器中使用超链接?
- c - sprintf 和 uint64_t (avr-libc 2.0.0) 的问题