【发布时间】:2016-09-13 18:03:12
【问题描述】:
我有以下返回 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");
}
这是我从 MS Office API 收到的 json 对象。
{"@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 企业版 E3 计费 statement","sender":{"emailAddress":{"name":"Microsoft Online Services 团队","地址":"T45763@email.microsoftonline.com"}}},{"@odata.etag":"W/\"JUU70303\"","id":"UEYO93988FK;O38GV3J884="," createdDateTime":"2016-08-26T15:28:47Z","subject":"订单 确认:谢谢您的 purchase","sender":{"emailAddress":{"name":"Microsoft Online Services 团队","地址":"obue733@email.microsoftonline.com"}}},{"@odata.etag":"W/\"LJKOIU987983\"","id":"ladjksflk83l.x8783LKFW3="," createdDateTime":"2016-06-24T03:03:26Z","subject":"注意: 您的 Microsoft Azure Active Directory Premium 试用订阅将 即将禁用","sender":{"emailAddress":{"name":"Microsoft Online 服务团队","address":"635cdeee@email.microsoftonline.com"}}}]}
【问题讨论】:
-
我建议您花一些时间学习 FASTER XML jackson json 解析器。特别是cowtowncoder.com/blog/archives/2011/07/entry_458.html
标签: json parsing gson office365 azure-ad-graph-api