如何从下到上对json进行排序

约恩德

我想从下到上对 json 进行排序,我可以从上到下解析 json,但我需要从下到上。

是否可以?我怎样才能做到这一点?

我可以使用以下代码解析 json:

主活动文件:

public class MainActivity extends AppCompatActivity {

    private ListView lv;
    private static String url = "https://api.androidhive.info/contacts/";

    ArrayList<HashMap<String, String>> contactList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        contactList = new ArrayList<>();

        lv = (ListView) findViewById(R.id.list);

        new GetContacts().execute();
    }

    private class GetContacts extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected Void doInBackground(Void... arg0) {
            HttpHandler sh = new HttpHandler();

            String jsonStr = sh.makeServiceCall(url);
            if (jsonStr != null) {
                try {
                    JSONObject jsonObj = new JSONObject(jsonStr);
                    JSONArray contacts = jsonObj.getJSONArray("contacts");
                    for (int i = 0; i < contacts.length(); i++) {
                        JSONObject c = contacts.getJSONObject(i);

                        String name = c.getString("name");
                        String email = c.getString("email");

                        HashMap<String, String> contact = new HashMap<>();

                        contact.put("name", name);
                        contact.put("email", email);
                        contactList.add(contact);
                    }
                } catch (final JSONException e) {
                }
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);

            ListAdapter adapter = new SimpleAdapter(
                    MainActivity.this, contactList,
                    R.layout.list_item, new String[]{"name", "email"}, new int[]{R.id.name,
                    R.id.email});

            lv.setAdapter(adapter);
        }
    }
}

HttpHandler 文件:

public class HttpHandler {

    public String makeServiceCall(String reqUrl) {
        String response = null;
        try {
            URL url = new URL(reqUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            // read the response
            InputStream in = new BufferedInputStream(conn.getInputStream());
            response = convertStreamToString(in);
        } catch (Exception e) {
        }
        return response;
    }

    private String convertStreamToString(InputStream is) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();

        String line;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line).append('\n');
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }
}

json文件:

{
    "contacts": [
        {
                "name": "leonardo",
                "email": "[email protected]"
                }
        },
        {
                "name": "Johnny",
                "email": "[email protected]"
                }
        },
        {
                "name": "jack",
                "email": "[email protected]"
                }
        }
        {
                "name": "paul",
                "email": "[email protected]"
                }
        }
  ]
}

输出:

leonardo - [email protected]
-----------------------------
johnny - [email protected]
-----------------------------
jack - [email protected]
-----------------------------
paul - [email protected]

但首先我想像这样显示最后一个项目:

paul - [email protected]
-----------------------------
jack - [email protected]
-----------------------------
johnny - [email protected]
-----------------------------
leonardo - [email protected]
Ankit Patidar

简单的 make 循环反向:

 for (int i = contacts.length()-1; i>=0; i--)      
 { 
      JSONObject c = contacts.getJSONObject(i); 
      String name = c.getString("name"); 
      String email = c.getString("email"); 
      HashMap<String, String> contact = new HashMap<>(); 
      contact.put("name", name); 
      contact.put("email", email); 
      contactList.add(contact); 
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

访客模式(从下到上)

来自分类Dev

如何使元素从下到上流动?

来自分类Dev

从下到上对齐div

来自分类Dev

从下到上旋转Div

来自分类Dev

Famo.us如何使滚动视图从下到上(或从右到左)填充?

来自分类Dev

如何从下到上为列表制作动画

来自分类Dev

Flexbox列,顺序从下到上

来自分类Dev

Swift:UIDynamic动画面板从下到上

来自分类Dev

Pygame-如何从下到上逐渐填充对象?

来自分类Dev

如何更改绘图轴(y轴)而不将值从下到上排序

来自分类Dev

如何使D3 JS树形视图从下到上垂直

来自分类Dev

如何在Navigationcontroller中从下到上显示/关闭ViewController?

来自分类Dev

Bootstrap Carousel卡从下到上放置

来自分类Dev

如何为SVG矩形动画以从下到上填充?

来自分类Dev

访客模式(从下到上)

来自分类Dev

Famo.us如何使滚动视图从下到上(或从右到左)填充?

来自分类Dev

foreach从下到上填充

来自分类Dev

ffmpeg从下到上滚动文本

来自分类Dev

如何使D3 JS树形视图从下到上垂直

来自分类Dev

如何从下到上淡入

来自分类Dev

悬停后如何从下到上显示下拉菜单滑块效果?

来自分类Dev

如何让tableview单元格从下到上填充?

来自分类Dev

如何从下到上为第二个活动设置动画?

来自分类Dev

如何使用 JavaScript 从下到上垂直显示文本?

来自分类Dev

在开发期间如何使用 jaxb 生成的文件从下到上发现 java 层次结构

来自分类Dev

ListView 从下到上滚动滞后

来自分类Dev

Xamarin 表单:如何将列表视图滚动行为更改为从下到上?

来自分类Dev

从下到上对数组进行排序并反转。只获取总数组的 10%

来自分类Dev

使用firebase聊天时如何从下到上设置数据

Related 相关文章

热门标签

归档