[ { "key": "a", "value": 5 },
{ "key": "b", "value": 3 },
{ "key": "c", "value": 7 }]
就这种json ,怎么实现比较的是value中的int的值的大小, 而返回的是key比如例子中返回的是 "max" = "c", "min" = "b" ?
java比较json对象的中的值
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- renkai721 2019-10-22 16:51关注
给你一个demo参考下,实现的逻辑是先把json转换为list,然后list进行排序。代码如下
package com; import java.util.Collections; import java.util.Comparator; import java.util.List; import com.alibaba.fastjson.JSON; public class TestSort { public static void main(String[] args) { String json = "[ { \"key\": \"a\", \"value\": 5 }," + "{ \"key\": \"b\", \"value\": 3 }," + "{ \"key\": \"c\", \"value\": 7 }]"; List<MyObject> list = JSON.parseArray(json,MyObject.class); Collections.sort(list, new Comparator<MyObject>() { @Override public int compare(MyObject u1, MyObject u2) { int diff = u1.getValue() - u2.getValue(); if (diff > 0) { return 1; } else if (diff < 0) { return -1; } return 0; } }); // max System.out.println("min key="+list.get(0).getKey()+", value="+list.get(0).getValue()); System.out.println("max key="+list.get(list.size()-1).getKey()+", value="+list.get(list.size()-1).getValue()); } }
输出结果如下
min key=b, value=3 max key=c, value=7
辅助工具类
package com; import java.io.Serializable; public class MyObject implements Serializable { private String key; private Integer value; public String getKey() { return key; } public void setKey(String key) { this.key = key; } public Integer getValue() { return value; } public void setValue(Integer value) { this.value = value; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求.net core 几款免费的pdf编辑器
- ¥20 SQL server表计算问题
- ¥15 C# P/Invoke的效率问题
- ¥20 thinkphp适配人大金仓问题
- ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
- ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
- ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
- ¥15 彩灯控制电路,会的加我QQ1482956179
- ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
- ¥15 (关键词-电路设计)