提取数据时进行慢速json解析

问题描述

我正在使用wordpress的REST API来获取数据,而我一次只能使用volley来获取10条帖子。

API Link

当我在浏览器中请求API时,它会在6-7秒内为我提供结果...

但是我的应用需要15秒钟以上才能显示10条帖子。

有时需要超过1分钟才能显示数据。

我什至添加一个参数,使每页仅获得2条帖子。但是响应时间是相同的。

我从2天开始搜索修改代码,但无法摆脱。

这是代码:-

 private void jsonrequest(int pageNo) {
    JSON_URL = "https://jamuitoday.com/wp-json/wp/v2/posts?_embed&page=" + pageNo;
    JsonArrayRequest request = new JsonArrayRequest(JSON_URL,response -> {

        JSONObject jsonObject;
        for (int i = 0; i < response.length(); i++) {
            try {

                isLoading = true;
                isNewsLoaded = false;
                jsonObject = response.getJSONObject(i);
                News news = new News();

                //Get News Link
                String link = jsonObject.getString("link");
                news.setLink(link);

                //Set Date
                String date = jsonObject.getString("date");
                String d = date.substring(0,10);
                int time = Integer.parseInt(date.substring(11,13));
                if (time > 12) {
                    String ti = date.substring(13,16);
                    String dt = d + "     " + (time - 12) + ti + " PM";
                    news.setdate(dt);
                } else {
                    String ti = date.substring(11,16);
                    String dt = d + "     " + ti + " AM";
                    news.setdate(dt);
                }

                //Set Title
                JSONObject title = jsonObject.getJSONObject("title");
                String titleren = title.getString("rendered");
                news.setName(titleren);

                //Set Description
                SpannableString content = new SpannableString("Content");
                content.setSpan(new Underlinespan(),content.length(),0);
                JSONObject desc = jsonObject.getJSONObject("content");
                String descSub = desc.getString("rendered");
                news.setDescription(String.valueOf(Html.fromHtml((descSub))));
                news.setAdimgurl(descSub);


                // Set Image
                JSONObject img = new JSONObject(jsonObject.getString("_embedded"));
                JSONArray ttt = img.getJSONArray("wp:featuredmedia");
                String s = "";
                for (int t = 0; t < ttt.length(); t++) {
                    JSONObject obj = ttt.getJSONObject(t);
                    s = obj.getString("source_url");
                }
                news.setimage_url(s);

                listNews.add(news);
                

            } catch (JSONException e) {
                e.printstacktrace();
            }
        }

        setuprecyclerview(listNews);
        isLoading = false;
        isNewsLoaded = true;
        
        pageNumber += 1;
        

        if (recyclerView.getLayoutManager() != null) {
            recyclerView.getLayoutManager().scrollToPosition(currentListPosition);
        }

        if (shimmerFrameLayout.isShimmerVisible()) {
            shimmerFrameLayout.stopShimmer();
            shimmerFrameLayout.setVisibility(View.GONE);
        }
        if (swipyRefreshLayout.isRefreshing()) {
            swipyRefreshLayout.setRefreshing(false);
        }

       

    },error -> {

    });


    RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);
    requestQueue.add(request);


}

有什么可以加快速度的黑客吗?

我将实现sqlite来存储数据并在应用启动时显示。因此,用户无法感觉到加载时间。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...