我尝试将数据放入我的数据库,但我有例外,如主题。将String转换为JSONObject可能是问题,但我不知道如何解决这个问题。Android排除异常:org.json.JSONException:值<br><java.lang.String类型的表不能转换为JSONObject
这里是我的OrderRequest
:
public OrderRequest(String orderNumber, String date, String adress, int phone, String email, String orderCode, int price, String time, int state, Response.Listener<String> listener){
super(Method.POST, ORDER_REQUEST_URL, listener, null);
params = new HashMap<>();
params.put("ordernumber", orderNumber);
params.put("data", date);
params.put("adress", adress);
params.put("phone", phone + "");
params.put("email", email);
params.put("ordercode", orderCode);
params.put("price", price + "");
params.put("time", time);
params.put("state", state + "");
}
@Override
public Map<String, String> getParams(){
return params;
}
这是我的PHP代码:
<?php
$con = <-here is password, etc...
$ordernumber = $_POST["ordernumber"];
$date = $_POST["date"];
$adress = $_POST["adress"];
$phone = $_POST["phone"];
$email = $_POST["email"];
$ordercode = $_POST["ordercode"];
$price = $_POST["price"];
$time = $_POST["time"];
$state = $_POST["state"];
$statement = mysqli_prepare($con, "INSERT INTO order (ordernumber, date, adress, phone, email, ordercode, price, time, state) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "sssissisi", $ordernumber, $date, $adress, $phone, $email, $ordercode, $price, $time, $state);
mysqli_stmt_execute($statement);
$response = array();
$response["success"] = true;
echo json_encode($response);
>
这里是我的Java代码:
Response.Listener<String> responsListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
boolean success = jsonResponse.getBoolean("success");
if (success) {
Intent intent = new Intent(FinalizeActivity.this, LoggedActivity.class);
FinalizeActivity.this.startActivity(intent);
} else {
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
OrderRequest orderRequest = new OrderRequest(orderNumberO, dateO, adressO, phoneO, emailO, orderCodeO, priceO, timeO, stateO, responsListener);
RequestQueue queue = Volley.newRequestQueue(FinalizeActivity.this);
queue.add(orderRequest);
}
}
});
在其他放在我的ap我有一个类似的代码,然后它的工作。
你在某处回应HTML,这是你的例外告诉你的。因为HTML不能被解析为JSON,所以你会得到一个异常 – 0xDEADC0DE
它的'data' not'date'在php代码 –
中寻找拼写错误,你得到一个HTML内容的响应,并且在这一行中'new JSONObject(response);'它不能转换它。首先找出你的回应,然后如果它是json格式,请将它转换为Notepad ++中的 –