[{"tjrq":"2022-07-13","id":"E3A5876D1B951F62E053320E23ACDAEF"},{"tjrq":"2021-09-10","id":"CD0AA3EBED1C185BE053150E19AC339F"},{"tjrq":"2020-06-11","id":"A7B4DC84A52A2720E053150E19AC56C0"}] Java代码fastjson 取Json字符串中距离当前时间最近的时间的id值
时间: 2023-06-25 16:06:45 浏览: 163
Oracle 验证是否是日期
5星 · 资源好评率100%
可以使用Java的fastjson库来解析JSON字符串,并且使用Java的日期时间类来计算距离当前时间最近的时间。以下是一个示例代码:
```java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String jsonString = "[{\"tjrq\":\"2022-07-13\",\"id\":\"E3A5876D1B951F62E053320E23ACDAEF\"},{\"tjrq\":\"2021-09-10\",\"id\":\"CD0AA3EBED1C185BE053150E19AC339F\"},{\"tjrq\":\"2020-06-11\",\"id\":\"A7B4DC84A52A2720E053150E19AC56C0\"}]";
JSONArray jsonArray = JSON.parseArray(jsonString);
String closestId = null;
LocalDate closestDate = null;
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
for (Object obj : jsonArray) {
JSONObject jsonObj = (JSONObject) obj;
String tjrqStr = jsonObj.getString("tjrq");
LocalDate tjrq = LocalDate.parse(tjrqStr, formatter);
if (closestDate == null || tjrq.isAfter(currentDate) && tjrq.isBefore(closestDate)) {
closestId = jsonObj.getString("id");
closestDate = tjrq;
}
}
System.out.println("距离当前时间最近的时间是:" + closestDate.format(formatter) + ",其id值为:" + closestId);
}
}
```
在上面的代码中,我们首先将JSON字符串解析为一个JSONArray对象。然后,我们遍历该数组中的每个元素,并将日期字符串解析为LocalDate对象。我们使用当前日期来比较每个日期,并在找到最近日期时更新closestDate和closestId变量。最后,我们输出最近日期和相应的id值。
阅读全文