json-Java中对JSONArray中的对象进行排序

问题描述

Java中对JSONArray中的对象进行排序

解决方案

为什么不转换成一个java集合再进行排序呢,排完序再转成json串不得了

解决方案二:
参考这个
[ { ""ID"": ""135""Name"": ""Fargo Chan"" }
{ ""ID"": ""432""Name"": ""Aaron Luke"" }
{ ""ID"": ""252""Name"": ""Dilip Singh"" }];

按照id 来排序

 String jsonArrStr = ""[ { ""ID"": ""135"" ""Name"": ""Fargo Chan"" }{ ""ID"": ""432"" ""Name"": ""Aaron Luke"" }{ ""ID"": ""252"" ""Name"": ""Dilip Singh"" }]"";    JSONArray jsonArr = new JSONArray(jsonArrStr);    JSONArray sortedJsonArray = new JSONArray();    List<JSONObject> jsonValues = new ArrayList<JSONObject>();    for (int i = 0; i < jsonArr.length(); i++) {        jsonValues.add(jsonArr.getJSONObject(i));    }    Collections.sort( jsonValues new Comparator<JSONObject>() {        //You can change ""Name"" with ""ID"" if you want to sort by ID        private static final String KEY_NAME = ""Name"";        @Override        public int compare(JSONObject a JSONObject b) {            String valA = new String();            String valB = new String();            try {                valA = (String) a.get(KEY_NAME);                valB = (String) b.get(KEY_NAME);            }             catch (JSONException e) {                //do something            }            return valA.compareTo(valB);            //if you want to change the sort order simply use the following:            //return -valA.compareTo(valB);        }    });    for (int i = 0; i < jsonArr.length(); i++) {        sortedJsonArray.put(jsonValues.get(i));    }

解决方案三:
json里面是数组数组里面有三个对象,最简单的方法循环把对象拿出来冒泡比较一下。只不过在比较的时候你需要选择出自己对象两个字段的较大值。
代码是符合确定比较列的情况下的。你自己改一下,
/*
@function JsonSort 对json排序
@param json 用来排序的json
@param key 排序的键值
*/
function JsonSort(jsonkey){
for(var j=1jl=json.length;j < jl;j++){
var temp = json[j] //第二个对象
val = temp[key]
i = j-1;
while(i >=0 && json[i][key]>val){ //用第二个和第一个比较
json[i+1] = json[i];
i = i-1;

}
json[i+1] = temp;

}return json;

}

var json = JsonSort(willSort'key');

时间: 2024-09-28 03:15:50

json-Java中对JSONArray中的对象进行排序的相关文章

JAVA 【引用类型】和【对象类型】在【继承】中的异同

介绍     JAVA [引用类型]和[对象类型]在[继承]中的异同,这个问题自己整理过N次,也被人当菜鸟问过N次.所以,在此简单整理一下,以供大家分享. 在继承关系中,一般成员变量是根据引用类型 在继承关系中,静态成员变量是根据引用类型 在继承关系中,一般方法是根据对象类型 在继承关系中,静态方法是根据引用类型 注意     静态成员变量,静态方法是基于类的,本文为了测试观察,所以,会用对象去引用静态成员变量和静态方法.      Super Class: package shuai.stud

java 某个类的几个对象,这些对象调用类中一个函数,是各自拥有自己的函数代码还是使用同一段代码?

问题描述 1.java 某个类的几个对象,这些对象调用类中一个函数(普通的函数),是各自拥有自己的函数代码还是使用同一段代码?2.java 继承中,子类从父类得到一些普通函数,这些函数的代码,是子类自己独自拥有一份还是和父类使用同一段函数代码.3.第一次发帖,积分什么的不会搞,貌似自己也没有积分,呵呵,大家包涵! 解决方案 引用1.java 某个类的几个对象,这些对象调用类中一个函数(普通的函数),是各自拥有自己的函数代码还是使用同一段代码?这几个对象调用的当然是同一段代码了.jvm中有一个ja

java菜鸟:可以在一个类中定义其他类的对象吗

问题描述 最近才开始学java,遇到一个问题:假如两个类classS1{},classS2{},可以在S2的构造函数中定义一个对象S1s1=newS1();吗?多谢! 解决方案 解决方案二:可以,只要S1拥有访问S2的权限解决方案三:当然可以,不一定在方法里,也可以作为属性解决方案四:引用1楼whos2002110的回复: 可以,只要S1拥有访问S2的权限 怎么确定S1有访问S2的权限呢,兄台能否帮我看看这段代码为啥出错:在g.fillRect中的参数中调用hero.getX(),hero.ge

工厂模式-java中工厂实例就是工厂对象对吗,和普通实例普通对象有什么区别

问题描述 java中工厂实例就是工厂对象对吗,和普通实例普通对象有什么区别 java中工厂实例就是工厂对象对吗,和普通实例普通对象有什么区别 解决方案 工厂实例就是这个工厂类的一个对象,跟普通实例对象没有什么区别的. 主要就是这个工厂实例的作用就是创建某种类型的对象的.即生产什么的工厂.

java程序中往list中添加对象

问题描述 java程序中往list中添加对象 我有一个类holiday,属性有name和date.先是声明一个list,List list =new ArrayList();然后就holiday hol =new holiday(name,date);最后使用add方法,list.add(hol);这样做是否正确. 可是当我遍历list时,输出的并不是原来定义的name和date,而是,holiday@89ae9e,请问这样对吗?如果我这样在往数据库里存数据是否可以...... 解决方案 楼上正

java中getA( ).getB( )意思就是 对象.对象那结果是什么

问题描述 java中getA( ).getB( )意思就是 对象.对象那结果是什么 java中getA( ).getB( )意思就是 对象.对象那结果是什么 结果还是一个对象么, 是不是子对象和父对象的意思呢 java没有这样的概念吧,应该如何理解呢 解决方案 这个要看 getA( ) 和 getB( ) 的具体实现,不能依赖于函数名来判断功能. 解决方案二: public class T2 { public static void main(String[] args) { new T2().

数据库-java中什么类,什么对象,什么方法,什么语句读取sql表文件的数据的

问题描述 java中什么类,什么对象,什么方法,什么语句读取sql表文件的数据的 java中什么类,什么对象,什么方法,什么语句读取sql表文件的数据的 解决方案 Statement或者preparedStatement类对应的实体对象,使用executeUpdate方法执行sql语句的查询操作.executeUpdate方法执行其他sql操作 解决方案二: http://blog.csdn.net/csh624366188/article/details/7305672/ 解决方案三: 这三个

java 中list集合中对象的声明周期

问题描述 java 中list集合中对象的声明周期 list集合中存放是是堆中的对象,但如果堆中的对象被回收后就变成了空?还是只要list集合存在就不会被回收?如果会被回收的话,怎样保证集合内的数据在list存在时长期有效??求大牛帮助

Java将对象保存到文件中/从文件中读取对象的方法_java

1.保存对象到文件中 Java语言只能将实现了Serializable接口的类的对象保存到文件中,利用如下方法即可: public static void writeObjectToFile(Object obj) { File file =new File("test.dat"); FileOutputStream out; try { out = new FileOutputStream(file); ObjectOutputStream objOut=new ObjectOutp