douyan8070 2016-03-02 16:43
浏览 40

将Android JSONArray发送到xamp服务器

I am using ArrayList<Hashmap<String,String>> to store my cart. i then converted ArrayList to JSONArray to pass it to server. But when i decode JSONArray in PHP it gives null. and android side it gives

03-02 20:48:38.546: E/JSON Parser(16949): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject 

Parameters look like following

03-02 20:48:38.516: D/params(16949): 
{address=address, email=email@yahoo.com, 
 cartitems=[{"name":"Chair","price":"1001","prodId":"2","category":"Chairs","image":"2130837519","Quantity":"1"},{"name":"Baxton Studio Club Chair","price":"4545","prodId":"5","category":"Chairs","image":"2130837521","Quantity":"1"}], 
 contact=124536987, username=name, payment=Cash, city=Islamabad}

Checkout page that sends data to server

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

    @Override
    protected String doInBackground(String... args) {
        // TODO Auto-generated method stub
        AddtoCart obj = (AddtoCart) getApplicationContext();

    obj.getCart().toString()));

        JSONArray cart = new JSONArray(obj.getCart());
        HashMap<String, String> params = new HashMap<String, String>();
        params.put("username", username);
        params.put("email", email);
        params.put("payment", payment);
        params.put("address", useraddress);
        params.put("contact", contact);
        params.put("city", usercity);
        params.put("cartitems", cart.toString());

        Log.d("params", params.toString());

        JSONObject json = jParser.makeHttpRequest(url_all_products, "POST", params);
        try {

            int success = json.getInt("success");

            if (success == 1) {
                Toast.makeText(Checkout.this, json.getString("message"), Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(Checkout.this, json.getString("message"), Toast.LENGTH_LONG).show();
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
return null;
    }

}

PHP file storing data in database

require_once __DIR__ . '/db_connect.php';

$db = new DB_CONNECT();
if($_SERVER['REQUEST_METHOD']=="POST"){

$userName=$_POST['username'];
$userEmailId=$_POST['email'];
$userPayment=$_POST['payment'];
$userAddress=$_POST['address'];
$userContact=$_POST['contact'];
$userCity=$_POST['city'];
$status='new';
$date=strftime('%y-%m-%d'); 
$array = array();

$array = $_POST['cartitems'];   //jsonArray
$resp2 = array(stripslashes($array));

$array2 = array(json_decode($array)); 
switch (json_last_error()) {
    case JSON_ERROR_NONE:
        $error = ' - No errors';
    break;
    case JSON_ERROR_DEPTH:
        $error =' - Maximum stack depth exceeded';
    break;
    case JSON_ERROR_STATE_MISMATCH:
       $error =' - Underflow or the modes mismatch';
    break;
    case JSON_ERROR_CTRL_CHAR:
        $error = ' - Unexpected control character found';
    break;
    case JSON_ERROR_SYNTAX:
        $error =' - Syntax error, malformed JSON';
    break;
    case JSON_ERROR_UTF8:
        $error = ' - Malformed UTF-8 characters, possibly incorrectly encoded';
    break;
    default:
        $error = ' - Unknown error';
    break;
}

$count=count($_POST['cartitems']);

$sql="INSERT INTO orders (customer_name, customer_emailId, customer_city, shipping_address, payment_method, contact_no, ordered_on,status) VALUES('$userName','$userEmailId','$userCity' ,'$userAddress','$userPayment','$userContact','$date','$status')";
mysql_query($sql);

$order_id = mysql_insert_id(); 
$sql2="insert into `orders_details` (`order_id`,`product_id`,`prodName`,`prodImg`,`catName`,`requied_qty`) values ";
for ($i=0; $i<$count; $i++) {
    $sql2.="('$order_id', '{$array2[$i]['prodId']}', '{$array2[$i]['name']}', '{$array2[$i]['image']}', '{$array2[$i]['category']}', {$array2[$i]['Quantity']})";
            if ($i < ($count - 1)) {
                $sql2 .= ", ";
            }
        }
        echo $sql2; 
    if (mysql_query($sql2)) {

        $response['message']="success full inserted";
        $response['success']=1;
        echo json_encode($response);
    } 
    else
     {
        $response['message']="failed to insert";
        $response['success']=0;
        echo json_encode($response);
}


}
?>
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Centos7 / PETGEM
    • ¥15 csmar数据进行spss描述性统计分析
    • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
    • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
    • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
    • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
    • ¥15 运动想象脑电信号数据集.vhdr
    • ¥15 三因素重复测量数据R语句编写,不存在交互作用
    • ¥15 微信会员卡等级和折扣规则
    • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗