Синтаксический анализ файла JSON может быть немного сложным и запутанным, если вы не уверены, какую библиотеку использовать. Существуют различные способы и доступные реализации, однако я решил использовать библиотеку GSON, поскольку это выглядело выполнимым для файла JSON, который я пытался проанализировать. Пример JSON приведен ниже
В этом примере я сохранил свой ответ в файле для демонстрации. Цель: Получить значение идентификатора пациента из этого JSON
{ "response": { "body": { "patients": { "patient": [ { "patientID": "ALM22346789", "submittedStatus": "In Progress", "patientType": "Inpatient", "submissionDate": "2020-10-15" } ] } }, "status": { "statusCode": "200", "statusMessage": { } } } }
Imports used: import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser;
Шаг 1: Прочитайте файл из сохраненного местоположения и сохраните его в JSONObject
JsonObject myobject = (JsonObject) new JsonParser().parse(new FileReader("MyFilePath"));
Шаг 2: Удерживайте “ответ” в объекте JSON
JsonObject response = (JsonObject) myobject.get("response");
Удерживайте “ответ” в объекте JSON
JsonObject body = (JsonObject) response.get("body"); JsonObject patients= (JsonObject) body.get("patients");
Шаг 4: тег “patient” находится в массиве, поэтому мы сохраним его в объекте массива
JsonArray patientbody= (JsonObject) patients.get("patient"); JsonObject patient0= patientbody.get(0).getAsJsonObject();
Шаг 5: Далее мы извлекем “Идентификатор пациента”.
String patientID =caseBody0.get("patientID").getAsString(); System.out.println(patientID);
Вывод: (как напечатано в консоли)
ALM22346789
Оригинал: “https://dev.to/suparnadas01/how-to-parse-complex-json-response-file-in-java-3559”