[ { "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 在若依框架下实现人脸识别
- ¥15 网络科学导论,网络控制
- ¥100 安卓tv程序连接SQLSERVER2008问题
- ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同