我正在使用改良2在android。当其中一个值返回空键(如"TOTAL_EXPENSE_AMOUNT":null )时,我的应用程序就会崩溃。我的儿子如下:
[{
"YEAR": "2019",
"TOTAL_AMOUNT": "1580292",
"TOTAL_EXPENSE_AMOUNT": "1740857",
"TOTAL_BALANCE": "-160565"
},
{
"YEAR": "2018",
"TOTAL_AMOUNT": "144000",
"TOTAL_EXPENSE_AMOUNT": null,
"TOTAL_BALANCE": null
} ]
1..My改装接口如下:
public interface Api {
@POST("User/yearly_balance_expense_list.php")
Call<List<Balance_Data_Model>> getBalanceList();
}
2.我的api服务如下所示:
public class ApiService {
public static final String BASE_URL = IPConfigure.getIP();
Api api = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build().create(Api.class);
public Call<List<Balance_Data_Model>> getBalanceList(){
return api.getBalanceList();
}
}
**3.**我的projo档案如下:
public class Balance_Data_Model {
@SerializedName("YEAR")
@Expose
public String year = "";
@SerializedName("TOTAL_AMOUNT")
@Expose
public String total_amount = "";
@SerializedName("TOTAL_EXPENSE_AMOUNT")
@Expose
public String total_expense = "";
@SerializedName("TOTAL_BALANCE")
@Expose
public String total_balance = "";
//getter/setter here
}
**4.**我使用了下面的活动代码
ApiService apiService = new ApiService();
Call<List<Balance_Data_Model>> call = apiService.getBalanceList();
call.enqueue(new Callback<List<Balance_Data_Model>>() {
@Override
public void onResponse(Call<List<Balance_Data_Model>> list, Response<List<Balance_Data_Model>> response) {
Log.e("success--->","success");
for(Balance_Data_Model m : response.body()){
Log.e("total_expense--->",m.total_expense);
Log.e("total_balance--->",m.total_balance);
}
}
@Override
public void onFailure(Call<List<Balance_Data_Model>> call, Throwable t) {
Log.e("failure--->",t.toString());
}
});
第一圈没问题。当total_balance为空时,应用程序就会崩溃。怎么处理?
发布于 2020-02-10 03:54:00
它解释了这里
因此,处理此问题的正确方法是使用if-else
。
if(m.total_expense!=null)
Log.e("total_expense--->",m.total_expense);
发布于 2020-02-10 04:32:50
日志不是打印空值,它会给出异常,如果您想打印日志,然后使用下面的
Log.e("total_expense--->",m.total_expense + "");
或者您可以检查m.total_expense!=null,然后打印不带"“。
发布于 2020-02-10 05:22:09
请处理来自响应的所有值,它是好的。
if(response.body() != null){
for(Balance_Data_Model m : response.body()){
if(m.total_expense != null)
Log.e("total_expense--->",m.total_expense);
if(m.total_balance != null)
Log.e("total_balance--->",m.total_balance);
}
}
https://stackoverflow.com/questions/60143717
复制相似问题