0

JSONループがあり、ループ内のオブジェクトを取得できますが、問題は、出力が正しくないことです。

私の期待する出力は次のとおりです。

Menu Id 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23

しかし、次のような結果が得られます。

Menu Id: 19,18,23,16,17,14,15,12,13,21,20,22,4,3,11,2,1

どうすればこれを期待どおりに並べ替えることができますか?

           JSONArray values = menuObject.toJSONArray(names);
           for (int i = 0; i< values.length(); i++) {
                        JSONObject json2 = (JSONObject) values.getJSONObject(i);
                        //int menu_id = json2.getInt("menu_id");
                        menu_id = json2.getString("menu_id");
                        int m_id = Integer.parseInt(menu_id);
                        if (json2.has("menu_parent")) {
                           menu_parent = json2.getString("menu_parent");    
                        }
            if (m_id < 0) {

               //
             } else {
               id = id + menu_id + ",";
               int menu_category = Integer.parseInt(menu_parent);
               System.out.println("Menu Id" + id);
                   if (json2.has("menu_name")) {
                     menu_list = json2.getString(KEY_MENU).trim();
                     System.out.println("Menu List" +menu_title);
                     menu_title = menu_title + menu_list + ",";
                   }
               }

           }
4

2 に答える 2

1

私はあなたがそれをこのように分類することができると思います:

Collections.sort("your data", new Comparator<Item>() {
        public int compare(Item i1, Item i2) {
            return i1.getCaption().compareTo(i2.getCaption());
        }
    });

これが行われた後、それは整理されるべきです。

于 2013-01-30T13:25:23.530 に答える
0

これを試して:

String menuids = "19,18,23,16,17,14,15,12,13,21,20,22,4,3,11,2,1";
        String[] ids = menuids.split(",");

                Integer[] result = new Integer[ids.length];
                for (int i = 0; i < ids.length; i++) {
                    result[i] = Integer.parseInt(ids[i].trim());
                }


                Collections.sort(Arrays.asList(result));

                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < result.length; i++) {
                    Integer intValue = result[i];
                    sb.append(intValue);
                    if (i < result.length - 1) {
                        sb.append(", ");
                    }
                }

        String finaldata = sb.toString();

        System.out.println(finaldata);
于 2013-01-30T14:46:25.377 に答える