[ { "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; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 创建taro项目,在vscode上能够写跨平台写微信小程序代码
- ¥15 网站出现错误跳转问题
- ¥15 Docker容器里已经安装了ssh,但打包迁移到新机器一直容器一直提示unrecognized service。
- ¥15 综合布线实例设计,就好看好看不恐怖可好滤镜好聚
- ¥15 使用moviepy库视频合并时出错
- ¥30 FLUENT液固传质UDF
- ¥15 怎么看梯度直方图以,怎么判断梯度消失/爆炸,怎么解决
- ¥15 aspnetdll文件访问拒绝
- ¥15 wpf中在模版中寻找元素
- ¥15 MFC平台生成指定圆