java - 基于键的Java JSON数组排序
问题描述
我有一个 JSON 数组,想根据 Java 中的键(字母数字)对其进行排序。
[{"exe":"12"},{"pdf":"23"},{"abc":"56"},{"zqr":"9"},{"cpr":"15"}]
排序后如何显示为:
[{"abc":"56"},{"cpr":"15"},{"exe":"12"},{"pdf":"23"},{"zqr":"9"}]
解决方案
设置您的 POM.XML:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version><!-- or higher version -->
</dependency>
像这样的Java代码:
public static void main(String[] args) throws Exception {
String json = "[{\"exe\":\"12\"},{\"pdf\":\"23\"},{\"abc\":\"56\"},{\"zqr\":\"9\"},{\"cpr\":\"15\"}]";
ObjectMapper mapper = new ObjectMapper();
List<LinkedHashMap> parsedJson = mapper.readValue(json, List.class);
Map<String, String> sortedMap = new TreeMap<>();
for (LinkedHashMap<String, String> elementMap : parsedJson) {
Entry<String, String> elementEntry = elementMap.entrySet().iterator().next();
sortedMap.put(elementEntry.getKey(), elementEntry.getValue());
}
System.out.println(mapper.writeValueAsString(sortedMap));
}
可能有更好的方法,但现在......
推荐阅读
- python-3.x - 如何使用带有 Appium 和 Python 的 Android 键盘键入文本?
- java - 这个 SpingMVC 和 Hibernate 事务有什么问题?
- angular - 如何在产品构建中包含 tsconfig.json?
- c - 当用 C 语言写在单独的行上时,反斜杠 \ 如何连接 printf 字符串?
- java - 检查与二维阵列中的中间位置相关的不同大小的正方形的位置?
- linux-kernel - Yocto:覆盖内核配置
- javascript - 我正在寻找在 jQuery 中构建产品选择器的一些想法
- xml -
元素作为子元素 - kubernetes - 使用 kubernetes java 客户端获取 k8s 服务端点
- amazon-web-services - AWS PHP 开发工具包 - Polly 神经语音 (NTTS)