Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android JSONException:完成paypal支付后id没有值_Android_Json_Paypal_Try Catch - Fatal编程技术网

Android JSONException:完成paypal支付后id没有值

Android JSONException:完成paypal支付后id没有值,android,json,paypal,try-catch,Android,Json,Paypal,Try Catch,用户在我的android应用程序上通过PayPal付款后,我希望显示PaymentId,以及他们刚刚支付的状态和金额。当我试图从JSONObject获取id时,当logcat中的id有值时,它会一直说“id没有值” ID具有如图所示的值 当我到达行textViewId.setText(jsonObject.getString(“id”))时它跳转到catch并显示错误“id无值”。即使在logcat中有一个值 下面是我的代码 @Override public void onActiv

用户在我的android应用程序上通过PayPal付款后,我希望显示PaymentId,以及他们刚刚支付的状态和金额。当我试图从JSONObject获取id时,当logcat中的id有值时,它会一直说“id没有值”

ID具有如图所示的值

当我到达行
textViewId.setText(jsonObject.getString(“id”))时它跳转到catch并显示错误“id无值”。即使在logcat中有一个值

下面是我的代码

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if (requestCode == PAYPAL_REQUEST_CODE)
        {
            if (resultCode == RESULT_OK)
            {
                PaymentConfirmation confirmation = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);
                if (confirmation != null)
                {
                    try
                    {
                        String paymentDetails = confirmation.toJSONObject().toString(4);
                        JSONObject jsonObject = new JSONObject(paymentDetails);
//                        String id = jsonObject.getString("id");
//                        String status = jsonObject.getString("state");
//                        startActivity(new Intent(getActivity(), PaymentDetails.class)
//                                .putExtra("PaymentDetails", paymentDetails)
//                                .putExtra("PaymentAmount", totalAmount + commisionAmount));

                        final AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity());
                        View mView = getLayoutInflater().inflate(R.layout.popup_payment_successful, null);

                        alertDialog.setTitle("Payment Successful");
                        alertDialog.setView(mView);
                        final AlertDialog dialog = alertDialog.create();
                        dialog.show();

                        TextView textViewId = mView.findViewById(R.id.textId);
                        TextView textViewAmount = mView.findViewById(R.id.textAmount);
                        TextView textViewStatus = mView.findViewById(R.id.textStatus);
                        jsonObject.has("id");

                        textViewId.setText(jsonObject.getString("id"));
                        textViewAmount.setText((int) (totalAmount + commisionAmount));
                        textViewStatus.setText(jsonObject.getString("state"));
                    } catch (JSONException e)
                    {
                        e.printStackTrace();
                    }
                }
            } else if (resultCode == Activity.RESULT_CANCELED)
            {
                Toast.makeText(getActivity(), "Cancel", Toast.LENGTH_SHORT).show();
            }
        } else if (resultCode == PaymentActivity.RESULT_EXTRAS_INVALID)
        {
            Toast.makeText(getActivity(), "Invalid", Toast.LENGTH_SHORT).show();
        }
    }

显然,您的
id
response
jsonobject中,所以请这样做

JSONObject jsonObject = new JSONObject(paymentDetails);
JSONObject jsonObject1 = jsonObject.optJSONObject("response");// return null or found object
if(jsonObject1 != null){
    String id = jsonObject1.optString("id",""); //return value or empty string
    String status = jsonObject1.optString("state","");
}

谢谢你解决了我的问题我很高兴能帮上忙。。快乐编码