Java 基于多个值对Json排序

Java 基于多个值对Json排序,java,json,sorting,gson,Java,Json,Sorting,Gson,在Java中,我希望基于多个值对JSON对象(而不是JSON数组)进行排序。下面是输入JSON文件内容的示例 {"Name":"John","Age":27,"Gender":"Male"} {"Name":"Lynda","Age":42,"Gender":"Female"} {"Name":"Peter","Age":34,"Gender":"Male"} {"Name":"Sheebha","Age":23,"Gender":"Female"} 我需要按年龄和性别对这些物品进行分类。我需

在Java中,我希望基于多个值对JSON对象(而不是JSON数组)进行排序。下面是输入JSON文件内容的示例

{"Name":"John","Age":27,"Gender":"Male"}
{"Name":"Lynda","Age":42,"Gender":"Female"}
{"Name":"Peter","Age":34,"Gender":"Male"}
{"Name":"Sheebha","Age":23,"Gender":"Female"}
我需要按年龄和性别对这些物品进行分类。我需要像下面这样的输出

{"Name":"John","Age":27,"Gender":"Male"}
{"Name":"Peter","Age":34,"Gender":"Male"}
{"Name":"Sheebha","Age":23,"Gender":"Female"}
{"Name":"Lynda","Age":42,"Gender":"Female"}
我正在使用GSON解析JSON。我只是想要一种方法来做这件事。我能够找到对JSON数组排序的解决方案,但找不到对象的解决方案


另外,让我知道解析JSON的最佳API;GSON或JSON.simple或其他任何东西。

在POJO对象中,基本上应该有这样一个comparator方法

public int compareTo(Object obj) {
    if(obj == null)
            return 1;
    else if (obj instanceof Person)
    {
        Person p2 = (Person) obj;
        if(this.gender.compareTo(p2.gender) < 0)
            return 1;
        else if(this.gender.compareTo(p2.gender) == 0)
            return this.age.compareTo(p2.age);
        else
            return -1;
    }
    else return 1;

}
希望这有帮助


祝你好运

在POJO对象中,基本上应该有这样一个comparator方法

public int compareTo(Object obj) {
    if(obj == null)
            return 1;
    else if (obj instanceof Person)
    {
        Person p2 = (Person) obj;
        if(this.gender.compareTo(p2.gender) < 0)
            return 1;
        else if(this.gender.compareTo(p2.gender) == 0)
            return this.age.compareTo(p2.age);
        else
            return -1;
    }
    else return 1;

}
希望这有帮助


祝你好运

另外,jackson在解析JavaAPI的json数据方面非常流行。您可以将json转换为java对象,然后使用java
Comparator
Interface对对象进行排序根据您期望的json,您需要先按性别排序,然后按年龄排序。AFAIK,jackson在解析java API的json数据时非常流行。您可以将json转换为java对象,然后使用java
Comparator
Interface对对象进行排序根据您期望的json,您需要先按性别排序,然后按年龄排序。谢谢您的方法。我转换到地图列表并对其进行排序。!谢谢你的帮助。我转换到地图列表并对其进行排序。!
Collections.sort(personList);