java8 jsonobject 的list 根据时间字符串 排序
时间: 2024-02-01 19:04:00 浏览: 30
假设有一个List<JsonObject> list,其中JsonObject中包含一个字段为时间字符串,需要按照时间字符串进行升序排序:
```
List<JsonObject> list = new ArrayList<>();
// 假设从某处获取到了jsonObjectList
list.sort(Comparator.comparing(o -> LocalDateTime.parse(o.get("timeString").getAsString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))));
```
以上代码将按照时间字符串升序排序。
如果需要进行降序排序,只需要在comparing方法后面调用reversed方法即可:
```
list.sort(Comparator.comparing(o -> LocalDateTime.parse(o.get("timeString").getAsString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).reversed());
```
其中DateTimeFormatter是用来解析时间字符串的,具体可以根据需要自行调整。
需要注意的是,如果JsonObject中的时间字符串格式不规范,会导致解析异常,需要自行处理异常情况。
相关问题
java list 排序 字符串
回答: 要对Java中的List进行排序,可以使用不同的方法。其中一种方法是通过使用Stream API,可以使用以下代码进行排序:List<Entity> finalList = list.stream() .sorted(Comparator.comparing(o1 -> new BigDecimal(JSONObject.parseObject(JSON.toJSONString(o1)).getString("money"))).reversed()) .collect(Collectors.toList()); [1另一种方法是使用自定义排序器Collections.sort(list, new Comparator<Entity>(){ @Override public int compare(Entity o1, Entity o2){ if(o1.getMoney().compareTo(o2.getMoney()) == 0){ return 1; } return o2.getMoney().compareTo(o1.getMoney()); } }); [2这两种方法都可以对List中的实体对象根据money属性进行排序。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* *2* [【Java】List 按照字符串里的数值排序](https://blog.csdn.net/Xumuyang_/article/details/122596301)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
- *3* [OMG,学它!java对list中字符串排序](https://blog.csdn.net/m0_57768082/article/details/119033008)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
[ .reference_list ]
java 字符串 转json 并按key排序
在 Java 中,可以使用 Gson 库将字符串转换成 JSON 对象,然后按照指定的 key 进行排序,示例代码如下:
```java
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.*;
public class JsonSorter {
public static void main(String[] args) {
// 原始 JSON 字符串
String jsonString = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}";
// 将 JSON 字符串转换成 JSON 对象
JsonParser jsonParser = new JsonParser();
JsonElement jsonElement = jsonParser.parse(jsonString);
JsonObject jsonObject = jsonElement.getAsJsonObject();
// 将 JSON 对象的 key 存入 List 中并排序
List<String> keys = new ArrayList<String>();
for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) {
keys.add(entry.getKey());
}
Collections.sort(keys);
// 根据排序后的 key 重新构建 JSON 对象
JsonObject sortedJsonObject = new JsonObject();
for (String key : keys) {
sortedJsonObject.add(key, jsonObject.get(key));
}
// 将排序后的 JSON 对象转换成字符串
Gson gson = new Gson();
String sortedJsonString = gson.toJson(sortedJsonObject);
System.out.println(sortedJsonString); // 输出:{"age":18,"gender":"male","name":"Tom"}
}
}
```
在上面的示例代码中,首先将原始的 JSON 字符串转换成 JSON 对象,然后将 JSON 对象的 key 存入 List 中并排序,最后根据排序后的 key 重新构建 JSON 对象,并将其转换成字符串。注意,这里使用了 Gson 库来进行 JSON 对象和字符串之间的转换。