Java JSONArray中的JSON节点操作

Java JSONArray中的JSON节点操作,java,json,Java,Json,我有一个JSONArray,它有多个对象。我需要实现方面的帮助,以便包含givenName:Carlos的所有节点在排序中都必须排在首位 { "personList": [ { "givenName": "Jim", "formattedName": "jimJackson", "familyName": null, "

我有一个JSONArray,它有多个对象。我需要实现方面的帮助,以便包含givenName:Carlos的所有节点在排序中都必须排在首位

    {
       "personList":   [
            {
                "givenName": "Jim",
                "formattedName": "jimJackson",
                "familyName": null,
                "middleName": "none",
                "honorificPrefix": "mr",
                "honorificSuffix": "none"
            },
            {
                "givenName": "john",
                "formattedName": "johnLasher",
                "familyName": null,
                "middleName": "none",
                "honorificPrefix": "mr",
                "honorificSuffix": "none"
            },
            {
                "givenName": "carlos1",
                "formattedName": "carlosAddner",
                "familyName": null,
                "middleName": "none",
                "honorifiPrefix": "mr",
                "honorificSuffix": "none"
            },
            {
                "givenName": "lisa",
                "formattedName": "lisaRay",
                "familyName": null,
                "middleName": "none",
                "honorificPrefix": "mrs",
                "honorificSuffix": "none"
            },
            {
                "givenName": "carlos2",
                "formattedName": "bradshawLion",
                "familyName": null,
                "middleName": "none",
                "honorificPrefix": "mr",
                "honorificSuffix": "none"
            },
            {
                "givenName": "phill",
                "formattedName": "phillKane",
                "familyName": null,
                "middleName": "none",
                "honorificPrefix": "mr",
                "honorificSuffix": "none"
            },
            {
                "givenName": "carlos3",
                "formattedName": "gabrielMoosa",
                "familyName": null,
                "middleName": "none",
                "honorificPrefix": "mr",
                "honorificSuffix": "none"
            } 
  ]
}
显示输出上所有节点的代码段

JSONArray jsonArray= (JSONArray) jsonObject.get("personList");

for (int i = 0; i < jsonArray.size(); i++) {
    System.out.println(jsonArray.get(i));


}
JSONArray JSONArray=(JSONArray)jsonObject.get(“personList”);
for(int i=0;i
我正在考虑创建一个新的JSONArray对象和包含Carlos的复制节点。问题-

  • 如何将特定节点复制到新的JSONArray
  • 我知道JSONArray没有排序,但是我可以用 特定键/值
  • 任何帮助都将不胜感激

    您可以先创建一个映射(字符串、对象),然后将所有JSON对象添加到映射中

    我通常做的是从JSON对象创建一个模型。例如,创建一个Person对象并将JSON数组解析为一个列表(Person)

    在您的例子中,您可以创建一个映射(字符串、Person),其中键为givenName。然后,您可以对集合执行您想要的操作:排序、循环、创建比较器等。

    创建一个类

    class BO{
     String givenName;
     String familyName;
     String formattedName;
     String middleName;
     String honorificPrefix;
     String honorificSuffix;
    }
    
    您可以使用库(或任何其他库)将json对象解析为java对象。 一旦每个json对象都有了java对象,就可以将它们集合起来

    制作一个接口的实现,您可以根据需要比较对象