Android(未处理的异常:org.json.JSONException)

时间:2015-05-17 16:24:00

标签: android json exception unhandled

人。无法将JSON字符串/对象输出到TextView中。 几天前开始在Android Studio中编程,所以...需要你的帮助,伙计们。 我有mainActivity,AllProductsActivity和EditProductActivity。所有产品活动从mysql数据库获取JSON数组并在ListView中显示。单击列表项后,它将转到EditProductActivity.That工作正常。但我无法理解我需要对此错误做些什么...

class GetProductDetails extends AsyncTask<String, String, JSONObject> {


    //Show progress dialog

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(EditProductActivity.this);
        pDialog.setMessage("Loading product details. Please wait...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }


    //Getting detail info in background


    protected JSONObject doInBackground(String... args) {

        JSONObject product = null;
        // check status success tag
        int success;

        try {
            // parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("pid", pid));

            // getting product from HTTP
            JSONObject json = jsonParser.makeHttpRequest(url_product_details, "GET", params);

            Log.d("Single Product Details", json.toString());

            success = json.getInt(TAG_SUCCESS);
            if (success == 1) {
                // Getting detail info successful
                JSONArray productObj = json.getJSONArray(TAG_PRODUCT);

                // first object from JSON Array
                product = productObj.getJSONObject(0);

            } else {
                // product with that pid not found
                Toast.makeText(getApplicationContext(), "pid not found", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(getApplicationContext(), AllProductsActivity.class);
                startActivity(intent);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return product;
    }

    /**
     * After completing background task Dismiss the progress dialog
     * *
     */
    protected void onPostExecute(JSONObject product) {
        if (product != null) {
            setContentView(R.layout.activity_edit_product);

            // product with this pid found
            // Text View
            txtName = (TextView) findViewById(R.id.showName);
            txtPrice = (TextView) findViewById(R.id.showPrice);
            txtDesc = (TextView) findViewById(R.id.showDescription);

            // display product data in EditText

           txtName.setText(product.getString(TAG_NAME));
          txtPrice.setText(product.getString(TAG_PRICE));
           txtDesc.setText(product.getString(TAG_DESCRIPTION));

        }
        // close progress dialog
        pDialog.dismiss();
    }
}

}

错误:

txtName.setText(product.getString(TAG_NAME));
txtPrice.setText(product.getString(TAG_PRICE));
txtDesc.setText(product.getString(TAG_DESCRIPTION));

未处理的异常:org.json.JSONException

1 个答案:

答案 0 :(得分:4)

添加try / catch

try {
            txtName.setText(product.getString(TAG_NAME));
            txtPrice.setText(product.getString(TAG_PRICE));
            txtDesc.setText(product.getString(TAG_DESCRIPTION));
        } catch (JSONException e) {
            // Do something with the exception
        }