java - 在java中使用JsonArray Iteration检索基于LastModifiedDate的记录
问题描述
我有这个输入数据。我需要通过执行迭代来检索记录(这里是我们Id
的jsonArray)。LastModifiedDate
jsonArray
records
谁能帮我实现这一目标?
输入数据:
{
"totalSize":2,
"done":true,
"records":[
{
"attributes":{
"type":"Lead",
"url":"/services/data/v45.0/sobjects/Lead/00Q5500000BHayREAT"
},
"Id":"00Q5500000BHayREAT",
"LastModifiedDate":"2020-07-17T08:06:16.000+0000"
},
{
"attributes":{
"type":"Lead",
"url":"/services/data/v45.0/sobjects/Lead/00Q5500000BHayHEAT"
},
"Id":"00Q5500000BHayHEAT",
"LastModifiedDate":"2020-07-17T08:07:16.000+0000"
}
]
}
我尝试了什么:
Step1:将每个记录日期添加到列表中
String recordsList="InputData";
List<Date> lastDate = new ArrayList<Date>();
String LeadID=null;
try {
JSONArray recs = new JSONArray(recordsList);
for (int i = 0; i < recs.length(); ++i) {
JSONObject rec = recs.getJSONObject(i);
if(rec.has("LastModifiedDate"))
{
String LastModifiedDate = rec.getString("LastModifiedDate");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
Date date = null;
try {
date = formatter.parse(LastModifiedDate);
System.out.println("date::::::::::" + date);
} catch (ParseException e) {
System.out.println("Invalid in LastModified Date Format");
}
lastDate.add(date);
}
}
lastDate.removeAll(Collections.singleton(null));
Object highestLastModifyDate = Collections.max(lastDate);
System.out.println("highestLastModifyDate:::::" + highestLastModifyDate);
Step2:将每个记录日期与highestLastModifyDate匹配并检索Id
for (int i = 0; i < recs.length(); ++i) {
JSONObject rec = recs.getJSONObject(i);
if(rec.has("LastModifiedDate"))
{
String LastModifiedDate = rec.getString("LastModifiedDate");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
Date date2 = null;
try {
date2 = formatter.parse(LastModifiedDate);
//System.out.println("date2::::::::::" + date2);
} catch (ParseException e) {
System.out.println("Invalid in LastModified Date Format");
}
if (date2 != null && highestLastModifyDate.equals(date2)) {
System.out.println("date2::::::::::" + date2);
LeadID = rec.getString("Id");
}
}
}
System.out.println("LeadID::::::::::" + LeadID);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
注意:此处显示的代码将起作用,但有没有有效的方法来实现这一点?
解决方案
推荐阅读
- objective-c - 核心数据禁用 journal_mode 不起作用
- javascript - 如何使用php管理html表中的childrecord?
- excel - 如何使用单元格编号在 excel 表 2 中获取 excel 表 1 数据
- r - 有几个条件的循环
- reactjs - 元素的水平对齐 - Semantic-UI-react
- javascript - Output of object in console failed
- android - 无法在 Android Studio 中解析 R,但应用程序编译得很好
- ios - layoutIfNeeded 导致崩溃
- python - 如何将有效输入放入继承 TextInput 小部件的 ModelChoiceField 小部件中
- reactjs - 基于 props 动态渲染组件