第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

沒有使用改造從android中的json響應(yīng)中獲取light_id

沒有使用改造從android中的json響應(yīng)中獲取light_id

嗶嗶one 2022-03-10 15:46:15
在下面的代碼中,我有一個(gè)名為 mPreset 的按鈕。如果單擊該按鈕,則將 get 方法發(fā)送到服務(wù)器并嘗試獲取響應(yīng)。如果響應(yīng)成功,則打印 json 數(shù)據(jù)。但我的 light_id 沒有打印。任何人都可以幫助解決這個(gè)問題在下面的代碼中,我有一個(gè)名為 GetScheduler 的類,其中一個(gè)是字符串類型,其余兩個(gè)是整數(shù)類型數(shù)組。GetScheduler.java: public class GetScheduler {    @SerializedName("status")    private String status;    @SerializedName("data")    private DataClass data;    public DataClass getData() {        return data;    }    public void setData(DataClass data) {        this.data= data;    }    public String getStatus() {        return status;    }    public void setStatus(String status) {        this.status = status;    }    public class DataClass {        @SerializedName("light_id")        private String light_id;        @SerializedName("intensity")        private int[] intensity;        @SerializedName("cct")        private int[] cct;        public String getLight_id() {            return light_id;        }        public void setLight_id(String light_id) {            this.light_id = light_id;        }        public int[] getIntensity() {            return intensity;        }        public void setIntensity(int[] intensity) {            this.intensity = intensity;        }        public int[] getCct() {            return cct;        }        public void setCct(int[] cct) {            this.cct = cct;        }    }在下面的類中描述了名為 API 的接口API.java: public interface API {    @retrofit2.http.GET("/gateway_schedule")    retrofit2.Call<GetScheduler> getSchedulerData();    }Main.java: mPreset.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View view) {                    getCCTAndIntensityValuesForPreset();                }            });     private void getCCTAndIntensityValuesForPreset() {        String url = "http://172.24.1.1:9000";        Retrofit retrofit = null;        Log.d("123", "retrofit");
查看完整描述

2 回答

?
萬千封印

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊

您需要?jiǎng)?chuàng)建 2 個(gè)類


package com.your.package;


import java.util.List;

import com.google.gson.annotations.Expose;

import com.google.gson.annotations.SerializedName;


public class Data {


@SerializedName("light_id")

@Expose

private String lightId;

@SerializedName("intensity")

@Expose

private List<Integer> intensity = null;

@SerializedName("cct")

@Expose

private List<Integer> cct = null;


public String getLightId() {

return lightId;

}


public void setLightId(String lightId) {

this.lightId = lightId;

}


public List<Integer> getIntensity() {

return intensity;

}


public void setIntensity(List<Integer> intensity) {

this.intensity = intensity;

}


public List<Integer> getCct() {

return cct;

}


public void setCct(List<Integer> cct) {

this.cct = cct;

}


}

-----------------------------------com.your.package.GetScheduler.java-----------------------------------


package com.your.package;


import com.google.gson.annotations.Expose;

import com.google.gson.annotations.SerializedName;


public class GetScheduler {


@SerializedName("status")

@Expose

private String status;

@SerializedName("data")

@Expose

private Data data;


public String getStatus() {

return status;

}


public void setStatus(String status) {

this.status = status;

}


public Data getData() {

return data;

}


public void setData(Data data) {

this.data = data;

}


}



查看完整回答
反對(duì) 回復(fù) 2022-03-10
?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

像這樣改變你的反應(yīng)


public class GetScheduler {

   @SerializedName("status")

   private String status;


   @SerializedName("data")

   private DataClass data;


   public DataClass getData() {

        return data;

   }


   public void setData(DataClass data) {

       this.data= data;

   }

   public String getStatus() {

       return status;

   }


   public void setStatus(String status) {

      this.status = status;

    }


   public class DataClass {

        @SerializedName("light_id")

        private String light_id;

        @SerializedName("intensity")

        private int[] intensity;

        @SerializedName("cct")

        private int[] cct;


        public String getLight_id() {

            return light_id;

        }


        public void setLight_id(String light_id) {

            this.light_id = light_id;

        }


        public int[] getIntensity() {

            return intensity;

        }


        public void setIntensity(int[] intensity) {

            this.intensity = intensity;

        }


        public int[] getCct() {

            return cct;

        }


        public void setCct(int[] cct) {

            this.cct = cct;

        }

     }

}

如果你有數(shù)組響應(yīng)(我看到你沒有)你必須使用List<GetScheduler>否則你必須只使用GetScheduler


所以改變所有


 List<GetScheduler>


 GetScheduler

API.java


public interface API {

@retrofit2.http.GET("/gateway_schedule")

     retrofit2.Call<GetScheduler> getSchedulerData();

}

和Main.java


private void getCCTAndIntensityValuesForPreset() {

    try {

        String url = "http://172.24.1.1:9000";


        Retrofit retrofit = null;

        Log.d("123", "retrofit");


        if (retrofit == null) {

            retrofit = new Retrofit.Builder()

                    .baseUrl(url)

                    .addConverterFactory(GsonConverterFactory.create())

                    .build();

            Log.d("123", "build();");

        }

        API service = retrofit.create(API.class);


        Call<GetScheduler> call=service.getSchedulerData();

        Log.d("123", "Call<GetScheduler> call = service.getSchedulerData();");

        call.enqueue(new Callback<GetScheduler>() {

            @Override

            public void onResponse(Call<GetScheduler> call, Response<GetScheduler> response) {

                if(response!=null&&response.isSuccessful()){

                    String getLightId=response.body().getData().getLight_id().toString();

                    Toast.makeText(getApplicationContext(),"Light Id"+getLightId,Toast.LENGTH_LONG).show();

                    //String light_id=response.body()

                    int[] getIntensty=response.body().getData().getIntensity();

                    for(int i=0;i<getIntensty.length;i++){

                        getIntensty[i]=i;

                    }

                    int[] getCCT=response.body().getData().getCct();

                    for(int i=0;i<getCCT.length;i++){

                        getCCT[i]=i;

                        mCCT1.setProgress(getCCT[0]);

                        mCCT2.setProgress(getCCT[1]);

                    }

                }


            };


            @Override

            public void onFailure(Call<GetScheduler> call, Throwable t) {

                t.printStackTrace();

            }



        });


    }catch (Exception e) {

        e.printStackTrace();

    }


}

你必須onResponse像這樣改變這條線


String getLightId=response.body().getData().getLight_id().toString();

我建議您添加登錄 onFailure() 并查看 logCat 并刪除 try catch


@Override

public void onFailure(Call<List<GetScheduler>> call, Throwable t) {

     t.printStackTrace();

}


查看完整回答
反對(duì) 回復(fù) 2022-03-10
  • 2 回答
  • 0 關(guān)注
  • 118 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)