У меня есть следующий код, который возвращает объект json. И мне нужно отфильтровать электронную почту отправителя, тему и createDate. Код выполняет эту работу, но я чувствовал, что есть эффективный способ сделать это. Я ценю ваше предложение.Каков эффективный способ получить поля от этого объекта 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/ $ метаданных # пользователей ('user34.onmicrosoft.com')/сообщения (отправитель, тема, createdDateTime)", "значение": [{ "@ OData. etag ":" W/\ "sljkasfdiou7978klosadf \" "," id ":" lkjasdfu97978KLJASDFS_WGHJJ76J897DKdcuvtymBTItq836K34PUAAAvoK3SAAA = "," createdDateTime ":" 2016-08-27T04: 07: 08Z "," subject ":" View ваш офис 365 Enterprise E3 billing statement "," sender ": {" emailAddress ": {" name ":" Microsoft Online Services Команда "," адрес ":" [email protected] "}}}, {" @ odata.etag ":" W/\ "JUU70303 \" "," id ":" UEYO93988FK; O38GV3J884 = "," createdDateTime ":" 2016-08-26T15: 28: 47Z "," subject ":" Order Подтверждение: Спасибо для вашего покупки "," se nder ": {" emailAddress ": {" name ":" Microsoft Online Services Команда "," адрес ":" [email protected] "}}}, {" @ odata.etag ":" W/\ "LJKOIU987983 \" "," id ":" ladjksflk83l.x8783LKFW3 = "," createdDateTime ":" 2016-06-24T03: 03: 26Z "," subject ":" Внимание: Ваша пробная подписка на Microsoft Azure Active Directory Premium будет быть отключены в ближайшее время», "отправитель": { "EMAILADDRESS": { "имя": "Microsoft Online Services Team", "адрес": "[email protected]"}}}]}
Я бы порекомендовал вам потратить некоторое время на изучение FASTER XML jackson json parser.особенно http://www.cowtowncoder.com/blog/archives/2011/07/entry_458.html – Hector