当前位置: 首页 > 面试题库 >

如何从Android中的JSON对象排序JSON数组?

汤乐家
2023-03-14
问题内容

我有一个JSON数组,我想根据名称和字母顺序对其进行排序。我的Json如下。

[
    {
        "UserID": 77,
        "InvID": 333,
        "Email": "sumeetssm@gmail.com",
        "Phone": "",
        "Name": "Summet",
        "Company": "",
        "Date": "2014-01-14T00:00:00"
    },
    {
        "UserID": 0,
        "InvID": 334,
        "Email": "amit@testt.com",
        "Phone": "",
        "Name": "Amit",
        "Company": "",
        "Date": "2014-01-14T00:00:00"
    },
    {
        "UserID": 3,
        "InvID": 335,
        "Email": "amitesh@yahoo.com",
        "Phone": "",
        "Name": "Amitesh",
        "Company": "",
        "Date": "2014-01-14T00:00:00"
    },
    {
        "UserID": 0,
        "InvID": 336,
        "Email": "foobar@test.com",
        "Phone": "",
        "Name": "FOO",
        "Company": "",
        "Date": "2014-01-14T00:00:00"
    },
    {
        "UserID": 0,
        "InvID": 337,
        "Email": "krazy.lance@gmail.com",
        "Phone": "",
        "Name": "Krazy",
        "Company": "",
        "Date": "2014-01-14T00:00:00"
    },
    {
        "UserID": 1,
        "InvID": 338,
        "Email": "test@yahoo.com",
        "Phone": "",
        "Name": "Test",
        "Company": "",
        "Date": "2014-01-14T00:00:00"
    },
    {
        "UserID": 0,
        "InvID": 339,
        "Email": "maktest@yahoo.com",
        "Phone": "",
        "Name": " ",
        "Company": "",
        "Date": "2014-01-14T00:00:00"
    },
    {
        "UserID": 0,
        "InvID": 340,
        "Email": "Sam@rediff.com",
        "Phone": "",
        "Name": "SAM",
        "Company": "",
        "Date": "2014-01-14T00:00:00"
    },
    {
        "UserID": 101,
        "InvID": 343,
        "Email": "anurag@yahoo.com",
        "Phone": "",
        "Name": "Anurag",
        "Company": "",
        "Date": "2014-01-14T00:00:00"
    },
    {
        "UserID": 95,
        "InvID": 379,
        "Email": "s@s.com",
        "Phone": "",
        "Name": "S",
        "Company": "",
        "Date": "2014-01-14T00:00:00"
    },
    {
        "UserID": 0,
        "InvID": 428,
        "Email": "sumeetssm@yahoo.com",
        "Phone": "",
        "Name": "Summet",
        "Company": "",
        "Date": "2014-01-16T00:00:00"
    },
    {
        "UserID": 4,
        "InvID": 494,
        "Email": "sameer@iconnectgroup.com",
        "Phone": "",
        "Name": "Sameer P",
        "Company": "",
        "Date": "2014-01-21T00:00:00"
    },
    {
        "UserID": 85,
        "InvID": 507,
        "Email": "jonny@dep.com",
        "Phone": "9404988188",
        "Name": "Jonny Dep",
        "Company": "Iconnect",
        "Date": "2014-01-22T00:00:00"
    }
]

如您所见,我有一个键值“名称”,因此我得到了尊敬的名称。我想完全基于该名称对Json数组进行排序,并且也按字母顺序排序。


问题答案:

转换JSONArrayArraylist<JSONBbject>并使用集合对您的数组列表进行排序

例如 :

ArrayList<JSONObject> array = new ArrayList<JSONObject>();
JSONArray jsonArray = new JSONArray();
for (int i = 0; i < jsonArray.length(); i++) {
    try {
        array.add(jsonArray.getJSONObject(i));
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Collections.sort(array, new Comparator<JSONObject>() {

    @Override
    public int compare(JSONObject lhs, JSONObject rhs) {
        // TODO Auto-generated method stub

        try {
            return (lhs.getString("Name").toLowerCase().compareTo(rhs.getString("Name").toLowerCase()));
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return 0;
        }
    }
});


 类似资料:
  • 问题内容: 我很难找到一种方法来解析JSONArray。看起来像这样: 如果JSON的写法不同,我知道如何解析它(换句话说,如果我返回了json对象而不是对象数组)。但这就是我所必须拥有的。 *编辑:这是一个有效的json。我使用此json制作了一个iPhone应用,现在我需要在Android上使用它,但无法弄清楚。有很多示例,但是它们都是与JSONObject相关的。我需要JSONArray。

  • 问题内容: 我已经寻找了一段时间,想要一种对JSON对象进行排序的方法,如下所示: 并按字母顺序按值“ COMMERCIALNAME_E”得到: 我找不到任何可以做到这一点的代码。谁能给我些帮助? 问题答案: 将这些JSON解析为“对象集合”,然后使用比较器通过您喜欢的字段对其进行排序。 使用GSON将其解析为对象集合 例: 如果要从Object创建JSON。

  • 问题内容: 我正在创建一个JSON对象,其中添加了一个键和一个数组值。键和值的值都来自TreeSet,该树具有排序形式的数据。但是,当我在json对象中插入数据时,它会随机存储,没有任何顺序。当前是我的json对象: 我的代码是: 有什么方法可以将数据存储到while循环本身中的json对象中? 问题答案: 它与Google Gson API一起使用。试试看。

  • 我很难找到解析JSONArray的方法。看起来是这样的: 如果JSON的编写方式不同(换句话说,如果返回的是JSON对象而不是对象数组),我知道如何解析它。但这是我所拥有的一切,我必须要去做。 *编辑:这是一个有效的json。我用这个json做了一个iPhone的应用程序,现在我需要为Android做,但无法解决这个问题。外面有很多例子,但它们都是与JSONObject相关的。我需要一些用于JSO

  • 问题内容: 我一直在寻找排序这样的JSON对象的时间 按字母顺序按“ COMMERCIALNAME_E”的值获取 我找不到任何可以做到这一点的代码。谁能给我些帮助吗? 问题答案: 更新:请勿更改

  • 我试图从一个.json数组创建一个数组,并且从当前的.json数组中只获取2个变量(keyName和token)。 目前,我使用了一个api调用来获取.json文件,然后将其解析为一个数组,如下所示: 请帮忙,因为我是初学C#的,如果有些说不通的话,对不起,我的英语不是很好。