如何在Android中显示来自json的其他对象

时间:2016-04-26 08:04:59

标签: android json

我想开发一个网站的Android应用程序。我阅读了来自json的网站帖子,并在RecyclerView每10个帖子中显示一次 我可以显示标题,描述和缩略图。但我希望从 thumbnail_images 缩略图的实例中显示中等。我不知道如何阅读 medium 中的图片?!

我的Json链接: Link

AsyncTaskCodes:

public class MainDataInfo {
    private Context mContext;
    private String ServerAddress = ServerIP.getIP();

    public void getMainDataInfo(Context context) {
        mContext = context;
        new getInfo().execute(ServerAddress + "page=1");
    }

    private class getInfo extends AsyncTask<String, Void, String> {
        EventBus bus = EventBus.getDefault();
        private String ou_response;
        private List<MainDataModel> infoModels;

        @Override
        protected void onPreExecute() {
            CustomProcessDialog.createAndShow(mContext);
            infoModels = new ArrayList<>();
        }

        @Override
        protected String doInBackground(String... params) {
            OkHttpClient client = new OkHttpClient();

            Request request = new Request.Builder()
                    .url(ServerAddress + "page=1")
                    .build();

            Response response;
            try {
                response = client.newCall(request).execute();
                ou_response = response.body().string();
                response.body().close();
                if (ou_response != null) {
                    try {
                        JSONObject postObj = new JSONObject(ou_response);
                        JSONArray postsArray = postObj.getJSONArray("posts");
                        infoModels = new ArrayList<>();

                        for (int i = 0; i <= infoModels.size(); i++) {
                            JSONObject postObject = (JSONObject) postsArray.get(i);
                            int id = postObject.getInt("id");
                            String title = postObject.getString("title");
                            Log.d("Data", "Post id: " + id);
                            Log.d("Data", "Post title: " + title);

                            //Use the title and id as per your requirement
                                infoModels.add(new MainDataModel(
                                        postObject.getInt("id"),
                                        postObject.getString("title"),
                                        postObject.getString("content"),
                                        postObject.getString("thumbnail")));

                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return ou_response;
        }

        @Override
        protected void onPostExecute(String result) {
            CustomProcessDialog.dissmis();
            if (result != null) {
                bus.post(infoModels);
            }
        }
    }
}

如何设置中等的图片?谢谢所有&lt; 3

1 个答案:

答案 0 :(得分:0)

try {
        JSONObject postObj = new JSONObject(ou_response);
        JSONArray postsArray = postObj.getJSONArray("posts");
        for (int i= 0; i < postsArray.length(); i++){
            JSONObject postObject = postsArray.getJSONObject(i);
            int id = postObject.getInt("id");
            String title = postObject.getString("title");
            //get other data
            JSONObject imageObj = postObject.getJSONObject("thumbnail_images");
            JSONObject mediumObj = imageObj.getJSONObject("medium");
            String mediumImage = mediumObj.getString("url");
            Log.d("Data", "id: " + id);
            Log.d("Data", "title: " + title);
            //log other data
            Log.d("Data", "the mediumObj url: " + mediumImage);
        }

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