Issue
In this code I will send id and mobile_no it retrieve me balance of user but it couldn't print in a Toast
.
What am I missing here my work properly but I don't get response string
private void Get_Wallet_Amount() {
Call<ResponseBody> call = AppController.getInstance().getApiInterface().getWalle_Data(Utils.getSharedPreference(getApplicationContext()).getString(Const.PREFERENCE_USER_ID,""),
Utils.getSharedPreference(getApplicationContext()).getString(Const.PREFERENCE_MOBILE_NUMBER,""));
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
String responseString = null;
try {
Toast.makeText(Proceed_PaymentActivity.this, "HI", Toast.LENGTH_SHORT).show();
responseString = response.body().string();
JSONObject jsonObject = new JSONObject(responseString);
//It doesn't print output
Toast.makeText(Proceed_PaymentActivity.this, ""+jsonObject.getString("wallet_amt"), Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Toast.makeText(Proceed_PaymentActivity.this, "Error", Toast.LENGTH_SHORT).show();
}
});
}
Retrofit Interface
@FormUrlEncoded
@POST("XXXX")
Call<ResponseBody> getWalle_Data(@Field("id") String uid,@Field("mobile") String mobile);
My JSON Output
[
{
"wallet_amt": 50
}
]
Error Logcat org.json.JSONException: Value [{"wallet_amt":50}] of type org.json.JSONArray cannot be converted to JSONObject 10-13 12:39:37.793 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at org.json.JSON.typeMismatch(JSON.java:111) 10-13 12:39:37.793 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at org.json.JSONObject.(JSONObject.java:160) 10-13 12:39:37.793 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at org.json.JSONObject.(JSONObject.java:173) 10-13 12:39:37.793 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at abc.example.com.rechargeappdesugn.activity.Proceed_PaymentActivity$1.onResponse(Proceed_PaymentActivity.java:97) 10-13 12:39:37.793 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68) 10-13 12:39:37.793 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at android.os.Handler.handleCallback(Handler.java:751) 10-13 12:39:37.793 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95) 10-13 12:39:37.793 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at android.os.Looper.loop(Looper.java:154) 10-13 12:39:37.793 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6119) 10-13 12:39:37.793 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at java.lang.reflect.Method.invoke(Native Method) 10-13 12:39:37.793 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 10-13 12:39:37.794 28522-28522/abc.example.com.rechargeappdesugn W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Solution
Your json
is JSONArray
.
Use JSONArray jsonArray = new JSONArray(responseString);
in your code .
you have to use getString() instead of opString().
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
String responseString = null;
try {
Toast.makeText(Proceed_PaymentActivity.this, "HI", Toast.LENGTH_SHORT).show();
responseString = response.body().string();
// edited here
JSONArray jsonArray = new JSONArray(responseString);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String wallet_amt = jsonObject.String("wallet_amt");
Toast.makeText(Proceed_PaymentActivity.this, wallet_amt, Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Answered By - KeLiuyue
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.