나는 간단한 JSON 라이브러리를 사용하여 tf2에 대한 일치 로그 분석기를 작성하고 있습니다. 코드는 모든 로그 ID를 성공적으로 가져 오지만 실제 로그 자체에는 도달 할 수 없습니다. org.json.simple.JSONObject가에,다운 캐스팅 JSONObject 대 JSONArray에 대한 ClassCastException
그러나 org.json.simple.JSONArray으로 캐스팅 할 수 없습니다 오류는 스레드
예외는 "주요"java.lang.ClassCastException가이 있다는 것입니다 코드, 이미 배열에 객체를 캐스팅했습니다. 여기 parseJSON가 된 JSONObject를 반환 코드의 조각과 logIDList 모든 로그 ID의 목록이 포함되어 다음 된 JSONObject는 항상 캐스팅 오류가 발생 캐스팅에서
JSONArray playerData = (JSONArray)parseJSON("http://logs.tf/json_search?player=" + steamID64).get("logs"); //.... JSONArray tempJSONArray = (JSONArray)parseJSON("http://logs.tf/json/" + logIDList.get(j)).get("players");
두 번째 시도. IntelliJ의 디버거를 사용하여 parseJSON은 JSON을 성공적으로 파싱하고 여러 개의 키를 반환합니다.
제 JSON 파일도록 구성된다 :
{ "logs": [ { "date": 1512093930, "id": 1893064, "title": "UGC 6v6 Match: RED vs -rep" }, ], }
제 JSON 파일도록 구성된다 :
{ "players" : { "[U:1:61383870]":{(Player Stats)} }, }
내 가정은 내의 키가되기 때문이다 열쇠 같은 거요? 이것이 내가 왜 다른 JSONObject를 사용하여 배열에 캐스트 할 수 없는지를 잘 모르는 경우.
는 설명 주셔서 너무 감사합니다! 나중에 참조 할 수 있도록 instanceof를 염두에 두겠습니다. – MrSoupman