У меня есть следующий код, который возвращает объект json. И мне нужно отфильтровать адрес электронной почты отправителя, тему и дату создания. Код выполняет свою работу, но я чувствовал, что есть эффективный способ сделать это. Я ценю ваше предложение.
ResponseEntity<String> response =
restTemplate.exchange(app.getResourceUrl() + personnelEmail+
MESSAGE+"/?$select=Sender,Subject,CreatedDateTime", HttpMethod.GET, request, String.class);
String str=response.getBody();
JSONObject jsonObject= new JSONObject(str);
JSONArray arrayList= (JSONArray)jsonObject.get("value");
List l=arrayList.toList();
for(int i=0;i<l.size();i++){
HashMap<String,HashMap> hashMap=(HashMap<String,HashMap>)l.get(i);
HashMap<String,HashMap> sender= hashMap.get("sender");
HashMap<String,String> senderEmail= sender.get("emailAddress");
String email= senderEmail.get("address");
}
Вот объект json, который я получаю от MS Office API.
{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users('user34.onmicrosoft.com')/messages(sender,subject,createdDateTime)","value":[{"@odata.etag":"W/\”sljkasfdiou7978klosadf\"", "id":"lkjasdfu97978KLJASDFS_WGHJJ76J897DKdcuvtymBTItq836K34PUAAAvoK3SAAA=","createdDateTime":"2016-08-27T04:07:08Z","subject":"Просмотрите платежную ведомость Office 365 Enterprise E3","sender":{"emailAddress":{ "name":"Группа Microsoft Online Services","address":"[email protected]"}}},{"@odata.etag":"W/\"JUU70303\"","id": ”UEYO93988FK;O38GV3J884=","createdDateTime":"2016-08-26T15:28:47Z","subject":"Подтверждение заказа: Спасибо за покупку","sender":{"emailAddress":{"name ":"Группа Microsoft Online Services","address":"[email protected]"}}},{"@odata.etag":"W/\"LJKOIU987983\"","id":"ladjksflk83l .x8783LKFW3=","createdDateTime":"2016-06-24T03:03:26Z","subject":"Внимание: ваш Microsoft Azure Active Подписка на пробную версию Directory Premium скоро будет отключена","sender":{"emailAddress":{"name":"Microsoft Online Services Team","address":"[email protected]"}}}]}