我正在使用改良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 07:26:06
您可以创建一个检查空值的方法。
public String amount (String json){
if(json == null){
return "";
else{
retrun json;
}
use like this `String amount=amount(responce.body().getAmount())`
https://stackoverflow.com/questions/60143717
复制相似问题