首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONArray中的JSON节点操作

JSONArray中的JSON节点操作
EN

Stack Overflow用户
提问于 2015-03-23 19:55:16
回答 2查看 32关注 0票数 0

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

代码语言:javascript
复制
    {
       "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"
            } 
  ]
}

显示输出中所有节点的代码段

代码语言:javascript
复制
JSONArray jsonArray= (JSONArray) jsonObject.get("personList");

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


}

我正在考虑创建一个新的JSONArray对象和包含卡洛斯的复制节点。问题-

  1. 如何将特定节点复制到新JSONArray?
  2. 我知道JSONArray没有排序,但是我能用特定的键/值对这些节点进行排序吗?

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2015-03-24 08:31:29

您可以首先创建Map(String,Object),并将所有JSON对象添加到Map中。

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

在您的示例中,您可以创建一个Map(String,Person),键名为givenName。然后,您可以使用集合来做您想做的事情:对它进行排序,循环它,创建一个比较器等等。

票数 0
EN

Stack Overflow用户

发布于 2015-03-24 08:39:15

创建一个类

代码语言:javascript
复制
class BO{
 String givenName;
 String familyName;
 String formattedName;
 String middleName;
 String honorificPrefix;
 String honorificSuffix;
}

您可以使用葛森库(或任何其他库)将json对象解析为java对象。一旦为每个json对象都拥有了java对象,就创建一个它们的集合。

实现比较器接口,您可以根据需要对对象进行比较。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29219170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档