(艺)网络请求——数据解析和bean的介绍

   private void requestDataByGet() {
        try {
            URL url = new URL("http://www.imooc.com/api/teacher?type=2&page=1");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setConnectTimeout(30*1000);
            connection.setRequestMethod("GET");
            connection.setRequestProperty("Content-Type", "application/json");
            connection.setRequestProperty("Charset", "UTF-8");
            connection.setRequestProperty("Accept-Charset", "UTF-8");
            connection.connect(); // 发起连接

            int responseCode = connection.getResponseCode();
            String responseMessage = connection.getResponseMessage();

            if(responseCode == HttpURLConnection.HTTP_OK){
                InputStream inputStream = connection.getInputStream();
                mResult = Utils.streamToString(inputStream);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        textView.setText(Utils.decode(mResult));
                        Bean bean=null;
                        try {
                            bean=new Bean();
                            JSONObject jsonObject=new JSONObject(mResult);
                            int status=jsonObject.getInt("status");
                            String msg=jsonObject.getString("msg");
                            bean.setMsg(msg);
                            bean.setStatus(status);
                            JSONArray jsonArray=jsonObject.getJSONArray("data");
                            // 获取数组中 索引为 0 的 name
                            String name = jsonArray.getJSONObject(0).getString("name");
                            for(int i=0;i<jsonArray.length();i++){
                                Bean.InnerBean innerBean=new Bean.InnerBean();
                                innerBean.setId(jsonArray.getJSONObject(i).getInt("id"));
                                innerBean.setName(jsonArray.getJSONObject(i).getString("name"));
                                innerBean.setPicSmall(jsonArray.getJSONObject(i).getString("picSmall"));
                                innerBean.setPicBig(jsonArray.getJSONObject(i).getString("picBig"));
                                bean.data.add(innerBean);
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                });

            } else {
                // TODO: error fail
                Log.e("TAG",bean.msg); // 返回接口返回信息
                Log.e("TAG".bean.data.get(2).getName()); // 获取指定值

                Log.e(TAG, "run: error code:" +responseCode +", message:" + responseMessage);
            }

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

 Bean.java

package com.example.testapplication.bean;

import java.util.ArrayList;
import java.util.List;

public class Bean {
    int status;
    int msg;
    List<InnerBean>data = new ArrayList<>();
    static class InnerBean{
        int id;
        String name;
        String picSmall;
        String description;
        int leaner;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getPicSmall() {
            return picSmall;
        }

        public void setPicSmall(String picSmall) {
            this.picSmall = picSmall;
        }

        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }

        public int getLeaner() {
            return leaner;
        }

        public void setLeaner(int leaner) {
            this.leaner = leaner;
        }
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public int getMsg() {
        return msg;
    }

    public void setMsg(int msg) {
        this.msg = msg;
    }

    public List<InnerBean> getData() {
        return data;
    }

    public void setData(List<InnerBean> data) {
        this.data = data;
    }
}

 

Guess you like

Origin blog.csdn.net/weixin_38107457/article/details/121460559