Здравствуйте, я пытался прочитать файл JSON в java с помощью библиотеки json.simple, я прочитал более десятка руководств о том, как это сделать, но в конце концов способ написания моего файла JSON вызывает у меня много проблем .
{
"0": {
"POI": "43df8ad6f964a520b92e1fe3",
"latitude": 40.731356448341,
"longitude": -73.988671302795,
"photos": "https://irs3.4sqi.net/img/general/612x612/343235_eezF7KZ55QpdVVNuMTFOO86bikjUbmrxb1IEuf2C1uI.jpg",
"POI_category_id": "Arts & Entertainment",
"POI_name": "AMC Loews Village 7"
},
"1": {
"POI": "4bfec352daf9c9b64038f9ef",
"latitude": 40.75358312925,
"longitude": -74.214450350548,
"photos": "https://irs1.4sqi.net/img/general/540x720/c5xfqE_ajHOZb1LBtUBEdYNlc9aQ12EoPcavI_dVkDw.jpg",
"POI_category_id": "Food",
"POI_name": "Wendy's"
}
...
}
Моя проблема в том, что я понятия не имею, как я могу получить первое значение «0»:, «1»: без ключа рядом, чтобы я мог использовать функцию .get("KEY").
Я пробовал что-то вроде jsobj.get(i), а затем каждый раз увеличивал значение i на единицу, но это вообще не сработало.
Это моя первая попытка сделать что-то с json, поэтому я понятия не имею, правильно ли то, что я пытаюсь сделать. заранее спасибо
Если вы используете библиотеку org.json для представления JSON, вы можете прочитать весь файл и сохранить содержимое в StringBuilder, а затем использовать этот StringBuilder.toString() для создания экземпляра new JSONObject(StringBuilder.toString()).
«Я пробовал что-то вроде jsobj.get (i), а затем каждый раз увеличивал значение i на единицу, но это вообще не сработало». - Это должно работать нормально, но помните, что в этом случае i должен быть строкой. Можете ли вы включить минимальный воспроизводимый пример, чтобы мы могли видеть, что происходит?
org.json.simple - это библиотека, которую я использую @ MạnhQuyếtNguyễn
@ berry120 из любопытства, я попробовал это сам буквально 2 минуты назад, и это вроде сработало, но я не знаю, как мне лучше всего извлечь данные: /
Что вы имеете в виду под «Видом работы»?
Ключ должен быть строкой.
нет, он работал нормально, он просто печатал данные в другом порядке. Виноват
Другой порядок нравится?
.get (String.valueOf (i)) в порядке, что было бы лучше всего для просмотра данных. Приведение его к JSONArray невозможно из того, что я читал.
спасибо всем за вашу помощь




Предполагая, что ваш JSON хранится в строке с именем json:
JSONObject obj = (JSONObject)new JSONParser().parse(json);
JSONObject ele;
for(int i=0 ; (ele=(JSONObject)obj.get(Integer.toString(i)))!=null ; i++) {
System.out.println("Index " + i + ":");
System.out.println(ele.get("POI"));
System.out.println(ele.get("latitude"));
System.out.println(ele.get("longitude"));
///etc.
}
Какую библиотеку вы используете?