При попытке проанализировать следующую строку JSON с помощью библиотеки json.simple :
[
{"id" : "6d7662a9.f8ba04"},
{"id" : "2da98cc2.145ba4"},
{"id" : "45492640.a17d68"}
]
я получаю следующее исключение:
java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.simple.JSONArray
Вот какЯ делаю это:
JSONArray json = (JSONArray) new JSONParser().parse(jsonString);
Строка JSON является массивом, поэтому не уверен, почему выбрасывается это исключение.
Здесь есть несколько похожих вопросов, но в своих случаях они пыталисьдля приведения JSONObject
к JSONArray
, поэтому имеет смысл сгенерировать исключение, но в этом случае оно выглядит правильно.
-----------------EDITS -----------------
Я добавил строку для печати класса объекта, например:
Object json = new JSONParser().parse(jsonString);
System.out.println(json.getClass());
Это печатает следующую строку:
class org.json.simple.JSONArray
и в следующей строке, у меня есть это, если:
if(json instanceof JSONArray) {
System.out.println("This is a JSONArray");
}
Но это не доступ к if, так что это действительно странно, потому чтоСначала я проверяю, является ли объект JSONArray, но он не печатает "This is a JSONArray"