首页 > 解决方案 > 使用 Ion 库加载返回 null JsonObject 结果

问题描述

几个月前,我构建了一个 Android 应用程序,其中一个片段用于使用 News API 显示新闻。最近,当我再次运行该应用程序时,出现以下错误。
错误

我附上了发生错误的代码片段。

Ion.with(getActivity()).load("GET",urltemp).asJsonObject().setCallback(new FutureCallback<JsonObject>() {
                @Override
                public void onCompleted(Exception e, JsonObject result) {

                    Log.d(TAG, "enter ");
                    String status = result.get("status").getAsString();
                    if (status.equals("ok")) {

                        JsonArray array = result.get("articles").getAsJsonArray();

                        for (int i = 0; i < array.size(); i++) {
                            JsonObject object = array.get(i).getAsJsonObject();

                            String author = object.get("author").toString();

                            String title = object.get("title").toString();
                            title = title.substring(1, title.length() - 1);

                            String url = object.get("url").toString();
                            url = url.substring(1, url.length() - 1);

                            String urlToImage = object.get("urlToImage").toString();
                            urlToImage = urlToImage.substring(1, urlToImage.length() - 1);

                            String date = object.get("publishedAt").toString();
                            String content = object.get("content").toString();
                            content = content.substring(1, content.length() - 1);

                            items.add(new ModelItems(title, author, date, urlToImage, url));
                        }

                        adapter = new SlideshowViewModel(getActivity(), items);
                        recyclerView.setAdapter(adapter);

                        LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
                        recyclerView.setLayoutManager(layoutManager);
                        Log.d(TAG, "success");
                    } else {
                        Log.e(TAG, "error");
                    }
                }
            });

现在,我认为可能有两个可能的错误来源,要么是 URL(urltemp变量)的问题,要么是 Ion 库的问题。现在,我将 URL 粘贴到浏览器中,它工作正常。所以,我想问题出在离子上。JsonObject 结果始终为空。尝试了不同的东西,但无法找出任何解决方案。

我从来没有使用过邮递员。所以,我不知道如何发布 API 响应。我附上了我如何分配 URL。

网址临时

我尝试的一件事是在浏览器中粘贴上面的 URL。当我将 URL 粘贴到浏览器中时,我得到以下响应: 回复

标签: javaandroidandroid-ion

解决方案


似乎 String status = result.get("status").getAsString();从您的服务器返回 null 。你能发布邮递员的 API 回复吗


推荐阅读