{
"My Income": {
"catResponse": null,
"sum": [
{
"name": "Salary",
"budgetvalue": 0,
"actualvalue": 6000,
"catID": 1,
"iconname": null,
"iconcolor": null,
"budgetHeadId": 0
}
],
"spendAmount": 0,
"incomeAmount": null
},
"My Growth": {
"catResponse": null,
"sum": [
{
"name": "IRA",
"budgetvalue": 0,
"actualvalue": 300,
"catID": 23,
"iconname": null,
"iconcolor": null,
"budgetHeadId": 0
},
{
"name": "Mutual Funds",
"budgetvalue": 0,
"actualvalue": 500,
"catID": 26,
"iconname": null,
"iconcolor": null,
"budgetHeadId": 0
},
{
"name": "My Goals",
"budgetvalue": 0,
"actualvalue": 150,
"catID": 28,
"iconname": null,
"iconcolor": null,
"budgetHeadId": 0
}
],
"spendAmount": 950,
"incomeAmount": null
},
"My Protection": {
"catResponse": null,
"sum": [],
"spendAmount": 0,
"incomeAmount": null
},
"My Spend": {
"catResponse": null,
"sum": [
{
"name": "Rent & Utilities",
"budgetvalue": 0,
"actualvalue": 855,
"catID": 5,
"iconname": null,
"iconcolor": null,
"budgetHeadId": 0
}
],
"spendAmount": 855,
"incomeAmount": null
},
"My Borrowings": {
"catResponse": null,
"sum": [
{
"name": "Education Loan",
"budgetvalue": 0,
"actualvalue": 1200,
"catID": 18,
"iconname": null,
"iconcolor": null,
"budgetHeadId": 0
},
{
"name": "Credit Card Payment",
"budgetvalue": 0,
"actualvalue": -1790,
"catID": 20,
"iconname": null,
"iconcolor": null,
"budgetHeadId": 0
},
{
"name": "Auto Loan",
"budgetvalue": 0,
"actualvalue": 600,
"catID": 13,
"iconname": null,
"iconcolor": null,
"budgetHeadId": 0
}
],
"spendAmount": 3590,
"incomeAmount": null
}
}
我的代码是这样的 JSONObject jObject = new JSONObject(String.valueOf(response))。getJSONObject(" My Income");
Iterator<String> keys = jObject.keys();
Log.i("ky1",keys.toString());
String keyname = null;
String keyValue = null;
while( keys.hasNext() )
{
if(jObject.isNull("catResponse") || response.isNull("incomeAmount")||response.isNull("iconname" )||response.isNull("iconcolor")) {
try {
jObject.put("catResponse", "0");
jObject.put("incomeAmount","0");
jObject.put("iconname", "0");
jObject.put("iconcolor", "0");
String res = jObject.toString();
Log.i("newrespone1", res);
} catch (JSONException e) {
e.printStackTrace();
}
}
Log.i("kyname", String.valueOf(keys));
keyname = keys.next();
keyValue = jObject.getString(keyname);
Log.v("keyValue", keyValue);
Log.v("category key", keyname);
JSONObject innerJObject = jObject.getJSONObject(keyname);
JSONObject jo = jObject.getJSONObject(keyname);
Iterator<String> innerKeys = jo.keys();
while( innerKeys.hasNext() )
{
String innerKkey = innerKeys.next();
String value = jo.getString(innerKkey);
Log.v("key = "+keyname, "value = "+value);
JSONObject totalObj = new JSONObject(value);
if(totalObj != null){
ModelHeader modelHeader = new ModelHeader();
modelHeader.setIncomeAmount(innerJObject.getString("My Income"));
modelHeader.setCatResponse(totalObj.getString("catResponse"));
modelHeader.setSum(totalObj.getString("sum"));
modelHeader.setSpendAmount(totalObj.getString("spendAmount"));
modelHeader.setIncomeAmount(totalObj.getString("incomeAmount"));
modelHeader.setMyGrowth(innerJObject.getString("My Growth"));
modelHeader.setMyProt(innerJObject.getString("My Protection"));
modelHeader.setMyBorrow(innerJObject.getString("My Borrowings"));
modelHeader.setMySpend(innerJObject.getString("My Spend"));
modelHeaderslist.add(modelHeader);
JSONArray list = totalObj.getJSONArray("sum");
if(list != null){
for(int i = 0; i < list.length();i++){
JSONObject elem = list.getJSONObject(i);
if(elem != null){
ModelBudget modelBudget = new ModelBudget();
modelBudget.setName(elem.getString("name"));
modelBudget.setBudgetHeadId(elem.getString("budgetHeadId"));
modelBudget.setActualvalue(elem.getString("actualvalue"));
modelBudget.setCatID(elem.getString("catID"));
modelBudget.setIconname(elem.getString("iconname"));
modelBudget.setIconcolor(elem.getString("iconcolor"));
modelBudget.setBudgetvalue(elem.getString("budgetvalue"));
budgetList = new ArrayList<>();
budgetList.add(modelBudget);
这里null点异常即将到来,所以我将json对象的每个null替换为零,请帮我如何处理这个json对象.. 如何在iterration处理零点异常?