android中json的空指针异常使用改型
您好,在下面的代码中,我从server.csn收到空指针异常。请检查它,并让我知道我在哪里犯了错误 如果不执行特定的if条件,任何人都可以检查我的更新代码 json响应:android中json的空指针异常使用改型,android,Android,您好,在下面的代码中,我从server.csn收到空指针异常。请检查它,并让我知道我在哪里犯了错误 如果不执行特定的if条件,任何人都可以检查我的更新代码 json响应: { "status": [ { "id": "1234", "status": 1, "val": null } ] } 下面是ONOFF的代码,我们得到的是响应。body()得到的是null。 respo
{
"status": [
{
"id": "1234",
"status": 1,
"val": null
}
]
}
下面是ONOFF的代码,我们得到的是响应。body()得到的是null。
response.code()我得到了200个ok
开启关闭:
OnOFF.setOnToggledListener (new OnToggledListener ( ) {
@Override
public void onSwitched(LabeledSwitch labeledSwitch, boolean isOn) {
String lightID="";
String lightType="";
String level="";
String Status="";
if(isOn) {
Retrofit retrofit = new Retrofit.Builder ( )
.baseUrl (API.URL_BASE)
.addConverterFactory (ScalarsConverterFactory.create ( ))
.addConverterFactory (GsonConverterFactory.create ( )).build ( );
API service = retrofit.create (API.class);
lightID = "1234";
lightType = "1";
level = "4";
try {
if (OnOFF.isOn ( )) {
Status = "1";
} else {
Status = "0";
}
JSONObject parmobject = new JSONObject ( );
parmobject.put ("Status", Status);
parmobject.put ("lightID", lightID);
parmobject.put ("lightType", lightType);
parmobject.put ("level", level);
// luminary.setImageDrawable(ContextCompat.getDrawable(getContext (), R.drawable.luminaryon));
Call<OnOffStatusList> userCall = service.getMyJSON (parmobject.toString ());
userCall.enqueue(new Callback<OnOffStatusList> () {
@Override
public void onResponse(Call<OnOffStatusList> call, Response<OnOffStatusList> response) {
String response1= response.body ().toString ();
Log.d ("response code",response1);
if (response1.equals ("200")) {
onoffStatusList=response.body ().getStatus ();
String id=onoffStatusList.get (0).getId ();
Integer status=onoffStatusList.get (1).getStatus();
String val=onoffStatusList.get (2).getVal ();
if(status==1) {
luminary.setImageDrawable (ContextCompat.getDrawable (getContext ( ), R.drawable.luminaryon));
}
else {
luminary.setImageDrawable (ContextCompat.getDrawable (getContext ( ), R.drawable.luminaryoff));
}
// String status=response.body ().getMatches ().toString ();
}
}
@Override
public void onFailure(Call<OnOffStatusList> call, Throwable t) {
// Toast.makeText(LoginActivity.this, "Some error occurred -> ", Toast.LENGTH_LONG).show();;
// dialog.dismiss();
}
});
} catch (JSONException e) {
e.printStackTrace ( );
}
}
}
});
OnOFF.setOnToggledListener(新的OnToggledListener(){
@凌驾
公共无效ON开关(LabeledSwitch LabeledSwitch,布尔值){
字符串lightID=“”;
字符串lightType=“”;
字符串级别=”;
字符串状态=”;
国际单项体育联合会{
改装改装=新改装.Builder()
.baseUrl(API.URL\u BASE)
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create()).build();
API服务=改装.create(API.class);
lightID=“1234”;
lightType=“1”;
级别=“4”;
试一试{
if(OnOFF.isOn()){
Status=“1”;
}否则{
Status=“0”;
}
JSONObject parmobject=新的JSONObject();
parmobject.put(“状态”,Status);
parmobject.put(“lightID”,lightID);
parmobject.put(“lightType”,lightType);
parmobject.put(“level”,level);
//setImageDrawable(ContextCompat.getDrawable(getContext(),R.drawable.luminaryon));
调用userCall=service.getMyJSON(parmobject.toString());
userCall.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
字符串response1=response.body().toString();
Log.d(“响应代码”,响应1);
如果(响应1.1等于(“200”)){
onoffStatusList=response.body().getStatus();
字符串id=onoffStatusList.get(0.getId();
整数状态=onoffStatusList.get(1).getStatus();
字符串val=onoffStatusList.get(2).getVal();
如果(状态==1){
luminary.setImageDrawable(ContextCompat.getDrawable(getContext(),R.drawable.luminaryon));
}
否则{
luminary.setImageDrawable(ContextCompat.getDrawable(getContext(),R.drawable.luminaryoff));
}
//字符串状态=response.body().getMatches().toString();
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
//Toast.makeText(LoginActivity.this,“发生了一些错误->”,Toast.LENGTH_LONG.show();;
//dialog.dismise();
}
});
}捕获(JSONException e){
e、 printStackTrace();
}
}
}
});
API:
@Headers(“内容类型:application/json”)
@邮政(“OnOff”)
调用getMyJSON(@Body-String-Body);
将response.body()和response一起添加空检查。
if(response!=null&&response.body()!=null)
共享Json响应。onoffStatusList为空,您正在尝试从null获取值。注释不用于扩展讨论或调试会话;这段对话已经结束。请确保回答中包含聊天室中的任何相关信息。
@Headers("Content-Type: application/json")
@POST("OnOff")
Call<OnOffStatusList> getMyJSON(@Body String body);