Das ist, was ich Text im JSON-Format von einer Website lesen muss. Aber ich habe den FehlerJSON als Zeichenfolge gespeichert. Cant scheint es zu analysieren - Java
java.lang.ClassCastException: org.json.simple.JSONObject nicht cast org.json.simple.JSONArray sein kann
Diese mich verrückt fährt. Kann jemand helfen? Ich muss auch diese Zeichenfolge für alle Instanzen von "Benutzername" überprüfen und etwas für jede von ihnen ausführen.
public class CommandCheck implements CommandExecutor {
private String username;
private static String host = "example.com";
private URL url;
private String apiKey = main.getNode("API-KEY");
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg3) {
try {
this.url = new URL(CommandCheck.host);
final URLConnection conn = this.url.openConnection();
conn.setConnectTimeout(5000);
if (this.apiKey != null) {
conn.addRequestProperty("x-api-key", this.apiKey);
}
conn.addRequestProperty("User-Agent", main.USER_AGENT);
conn.setDoOutput(true);
final BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
final String response = reader.readLine();
sender.sendMessage(response); //Im just dumping the raw String for the person running the command to see Debug mostly
final JSONArray array = (JSONArray) JSONValue.parse(response);
if (array.isEmpty()) {
sender.sendMessage("The Array appears to be empty");
return false;
}
JSONObject latestUpdate = (JSONObject) array.get(array.size() - 1);
username = (String) latestUpdate.get("Username");
sender.sendMessage("whitelist add" + username);
return true;
} catch (final IOException e) {
if (e.getMessage().contains("HTTP response code: 403")) {
sender.sendMessage("I think there is an API key issue");
} else {
sender.sendMessage("Problem of unknown orign");
}
return false;
}
}
Sie haben die Zeichenfolge nicht in Frage gestellt. Wetten, es ist ein Objekt anstelle eines Arrays, genau wie der Fehler sagt. – chrylis
{"Rücknahmen": [{"reward_id": 450491, "replace_id": 1729333, "created_at": "2017-01-05T00: 42: 41.949Z", "Rückerstattung": false, "completed": false, " user_input ": {" Minecraft-Benutzername ":" Budderb123 "}," Benutzername ":" budderbb123 "}, {" reward_id ": 450491," replace_id ": 1729314," created_at ":" 2017-01-05T00: 41: 08.881 Z "," zurückerstattet ": false," completed ": false," user_input ": {" Minecraft Benutzername ":" Bigdaddy "}," Benutzername ":" dustinduse "}]," total ": 2," page_size ": 25} –
Ja, das ist ein JSON-Objekt mit Schlüsseln der obersten Ebene 'repatrings',' total' und 'page_size'. Kein Array. – chrylis