Большое спасибо @Code в другом ответе. Благодаря вашему коду я могу прочитать любой файл JSON. Теперь я пытаюсь упорядочить все элементы по уровням, чтобы их можно было использовать!
Я работал с Android, считывая JSON из URL, и единственное, что мне пришлось изменить, это строки
Set<Object> set = jsonObject.keySet(); Iterator<Object> iterator = set.iterator();
1.) Создайте arraylist соответствующего типа, в данном случае, т.е String
2.) Создайте JSONObject при передаче вашей строки в JSONObject конструктор в качестве входных данных
Поскольку JSONObject обозначение представлено фигурными скобками, т.е. {}
Где как JSONArray обозначение представлено квадратными скобками, т.е []
3.) Извлекаем JSONArray из JSONObject (созданного на 2-м шаге), используя "interests" в качестве индекса.
4.) Пройдите JASONArray с помощью циклов до длины массива, предоставленного length() функцией
5.) Извлеките свой JSONObjects from JSONArray с помощью getJSONObject(index) функции
6.) Извлеките данные из JSONObject, используя индекс '"interestKey"'.
Примечание :JSON при синтаксическом анализе используется escape-последовательность для специальных вложенных символов, если ответ json (обычно из других API-интерфейсов JSON response) содержит кавычки ("), подобные этому
`"{"key":"value"}"`
должно быть примерно так
`"{\"key\":\"value\"}"`
таким образом, вы можете использовать JSONParser для достижения формата экранированной последовательности в целях безопасности как
for(inti=0 ; i < jsonArray.length() ; i++){ interestList.add(jsonArray.getJSONObject(i).optString("interestKey")); }
Примечание : Иногда вы можете увидеть некоторые исключения, когда values are not available in appropriate type or is there is no mapping key поэтому в тех случаях, когда вы не уверены в наличии значения, поэтому используйте optString, optInt, optBoolean и т.д., которые просто вернут значение по умолчанию, если оно отсутствует, и даже попытаются преобразовать значение в int, если оно строкового типа, и наоборот, так просто Никаких исключений null или NumberFormat вообще в случае отсутствия ключа или значения