博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 使用 gson 对 json 根据 key 键进行排序
阅读量:6395 次
发布时间:2019-06-23

本文共 2114 字,大约阅读时间需要 7 分钟。

hot3.png

引入Google的gson jar

com.google.code.gson
gson
2.8.0

使用 

/**     * 定义比较规则     *     * @return     */    private static Comparator
getComparator() { return (s1, s2) -> s1.compareTo(s2); } /** * 排序 * * @param e */ public static void sort(JsonElement e) { if (e.isJsonNull() || e.isJsonPrimitive()) { return; } if (e.isJsonArray()) { JsonArray a = e.getAsJsonArray(); Iterator
it = a.iterator(); it.forEachRemaining(i -> sort(i)); return; } if (e.isJsonObject()) { Map
tm = new TreeMap<>(getComparator()); for (Map.Entry
en : e.getAsJsonObject().entrySet()) { tm.put(en.getKey(), en.getValue()); } String key; JsonElement val; for (Map.Entry
en : tm.entrySet()) { key = en.getKey(); val = en.getValue(); e.getAsJsonObject().remove(key); e.getAsJsonObject().add(key, val); sort(val); } } } /** * 根据json key排序 * @param json * @return */ private static String sortJson(String json) { Gson g = new GsonBuilder().setPrettyPrinting().create(); JsonParser p = new JsonParser(); JsonElement e = p.parse(json); sort(e); return g.toJson(e); } public static void main(String[] args) { String json = "{" + " \"aaa\":\"aaa\"," + " \"bbb\":\"bbb\"," + " \"abc\":\"abc\"," + " \"baa\":{" + " \"cab\":\"cab\"," + " \"abc\":\"abc\"," + " \"bac\":\"bac\"" + " }" + "}"; System.out.println(sortJson(json));; }

ee699891b6e99dc8f43ed76ef9c78144e9b.jpg

转载于:https://my.oschina.net/pipimao/blog/2988923

你可能感兴趣的文章
Weblogic项目部署教程
查看>>
Gradle -- buildScript块与allprojects块及根级别的repositories区别
查看>>
远程SSH连接服务与基本排错
查看>>
Objective-C学习笔记(十九)——对象方法和类方法的相互调用
查看>>
win10 WmiPrvSE.exe WMI Provider 占用CPU过高的问题
查看>>
hdu 4945 2048(DP)
查看>>
论文阅读:CNN-RNN: A Unified Framework for Multi-label Image Classification
查看>>
开篇有益-解析微软微服务架构eShopOnContainers(一)
查看>>
IE新发现
查看>>
quick check
查看>>
Debug时含有的子元素,在代码里获取不到的问题
查看>>
UVA 11020 - Efficient Solutions(set)
查看>>
RStudio版本号管理 整合Git
查看>>
使用 PHPMailer 发送邮件
查看>>
文件系统管理 之 Linux 创建文件系统及挂载文件系统流程详解
查看>>
CSS选择器学习小结
查看>>
什么叫贸工技发展模式?什么叫技工贸发展模式?
查看>>
MyEclipse for Spring 10.0: GWT 2.1 and Spring Scaffolding
查看>>
水木-搜索引擎技术版
查看>>
yiStack平台维护
查看>>