0

当我从本地数据库中获取数据时,我在 Json 对象中获取值并将其转换为字符串,结果可以在本地服务器中看到。

但是..当我在实时数据库上执行相同的代码时,数据无法转换为 Json 对象。

这是我的代码 -

    class Createoffer extends AsyncTask<String, String, String> {

            @Override
            protected void onPreExecute() {
                // TODO Auto-generated method stub
                super.onPreExecute();
            }

            @Override
            protected String doInBackground(String... params) {
                // TODO Auto-generated method stub
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(
                        "http://10.0.2.2/Upshot_Loyalty_Program/android_api_retailer/create_offer.php");
                try {
                    session = new SessionManager(getApplicationContext());
                    HashMap<String, String> user = session.getUserDetails();
                    bus_id = user.get(SessionManager.KEY_B_ID);
                    emp_id = user.get(SessionManager.KEY_E_ID);
                    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
                            2);
                    nameValuePairs.add(new BasicNameValuePair("bus_id", bus_id));
                    nameValuePairs.add(new BasicNameValuePair("offer_name",
                            offer_name_final));
                    nameValuePairs.add(new BasicNameValuePair("offer_discount",
                            offer_discount));
                    nameValuePairs.add(new BasicNameValuePair("date",
                            offer_valid_till));
                    nameValuePairs.add(new BasicNameValuePair("start_time",
                            offer_starting_time));
                    nameValuePairs.add(new BasicNameValuePair("end_time",
                            offer_ending_time));
                    nameValuePairs.add(new BasicNameValuePair("redeem_times",
                            offer_times_redeem));
                    nameValuePairs
                            .add(new BasicNameValuePair("created_by", emp_id));
                    nameValuePairs.add(new BasicNameValuePair("offer_created_for",
                            offer_created_for1));
                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    HttpResponse response = httpclient.execute(httppost);
                    response.getStatusLine().getStatusCode();
                    HttpEntity getResponseEntity = response.getEntity();
                    responseString = EntityUtils.toString(getResponseEntity);
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                }
                return responseString;
            }

            @Override
            protected void onPostExecute(String result) {
                // TODO Auto-generated method stub
                try {
                    JSONObject json = new JSONObject(responseString);
                    JSONArray jArray = json.getJSONArray("customer");
                    for (int i = 0; i < jArray.length(); i++) {
                        jsonobj = jArray.getJSONObject(i);
                        success = jsonobj.getString("success");
                        System.out.println(success);
                    }
                    if (success.equals("1")) {
                        Intent innv = new Intent(getApplicationContext(),
                                Offers.class);
                        Editor editor = sharedpreferences.edit();
                        editor.clear();
                        editor.commit();
                        startActivity(innv);
                        Toast toast = Toast.makeText(getApplicationContext(),
                                "Offer sent successful to " + total_eli_cus
                                        + " customers ", Toast.LENGTH_SHORT);
                        toast.setGravity(Gravity.CENTER, 0, 0);
                        toast.show();
                    } else {
                        Toast toast = Toast.makeText(getApplicationContext(),
                                "Offer Not Created", Toast.LENGTH_SHORT);
                        toast.setGravity(Gravity.CENTER, 0, 0);
                        toast.show();
                    }
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }

这是我在 logcat 中遇到的错误 -

        08-04 17:34:59.724: W/System.err(2649): org.json.JSONException: Value You of type java.lang.String cannot be converted to JSONObject
        08-04 17:34:59.724: W/System.err(2649):  at org.json.JSON.typeMismatch(JSON.java:111)
        08-04 17:34:59.729: W/System.err(2649):  at org.json.JSONObject.<init>(JSONObject.java:158)
        08-04 17:34:59.729: W/System.err(2649):  at org.json.JSONObject.<init>(JSONObject.java:171)
        08-04 17:34:59.739: W/System.err(2649):  at com.pack.upshot.Offer_success$Createoffer.onPostExecute(Offer_success.java:152)
        08-04 17:34:59.739: W/System.err(2649):  at com.pack.upshot.Offer_success$Createoffer.onPostExecute(Offer_success.java:1)
        08-04 17:34:59.739: W/System.err(2649):  at android.os.AsyncTask.finish(AsyncTask.java:602)
        08-04 17:34:59.750: W/System.err(2649):  at android.os.AsyncTask.access$600(AsyncTask.java:156)
        08-04 17:34:59.750: W/System.err(2649):  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
        08-04 17:34:59.760: W/System.err(2649):  at android.os.Handler.dispatchMessage(Handler.java:99)
        08-04 17:34:59.760: W/System.err(2649):  at android.os.Looper.loop(Looper.java:137)
        08-04 17:34:59.769: W/System.err(2649):  at android.app.ActivityThread.main(ActivityThread.java:4340)
        08-04 17:34:59.769: W/System.err(2649):  at java.lang.reflect.Method.invokeNative(Native Method)
        08-04 17:34:59.789: W/System.err(2649):  at java.lang.reflect.Method.invoke(Method.java:511)
        08-04 17:34:59.789: W/System.err(2649):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
        08-04 17:34:59.789: W/System.err(2649):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
        08-04 17:34:59.789: W/System.err(2649):  at dalvik.system.NativeStart.main(Native Method)

这是我在 JSON 中的结果 -

{
    "customer": [
        {
            "success": "1"
        }
    ]
}
4

1 回答 1

0

您的网络服务没有创建有效JSON的 . 字符串JSON只能以{or开头[。你的从String“数组”开始。

您可以在此处JSON的 Wikipedia 条目中阅读有关格式的信息。

于 2014-08-04T12:23:57.407 回答