У меня на локальном компьютере работает RESTful API, который возвращает ответ в JSON (на самом деле этот JSON является ответом на запрос клиента Soap nodejs) в зависимости от запроса.Для этого конкретного случая я получаю запрос POST от клиента Android и возвращаю следующий ответ:
{
QueryAcctBalResponse: {
BalExDtoList: {
BalExDto: [{
BalID: "xxxx",
AcctResID: "xxxx",
AcctResName: "xxxx",
BalType: "xxxx",
Balance: "xxxx",
EffDate: "xxxx",
ExpDate: "xxxx",
UpdateDate: "xxxx"
}, {
BalID: "yyyy",
AcctResID: "yyyy",
AcctResName: "yyyy",
BalType: "yyyy",
Balance: "yyyy",
EffDate: "yyyy",
ExpDate: "yyyy",
UpdateDate: "yyyy"
}]
}
}
}
Проблема заключается в том, что каждый раз, когда я пытаюсь проанализировать этот ответ и отобразить эту информацию в Android (в частности, «AcctResName»),Я получаю org.json.JSONException: нет значения для BalExDto .Я использую Volley Libray в Android для анализа Json, и я использовал запрос Jsonobject.
Код запроса.
JsonObjectRequest sq = new JsonObjectRequest(Request.Method.POST, balanceUrl, request, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("BalExDto");
for (int i = 0; i < jsonArray.length(); i++){
JSONObject jsonObject=jsonArray.getJSONObject(i);
Toast.makeText(CheckBalance.this, ""+jsonObject.get("AcctResName"), Toast.LENGTH_LONG).show();
}
pd.hide();
} catch (JSONException e) {
e.printStackTrace();
}
Log.d("Response", "Response_TAG: "+response);
}