2016-12-07 17 views
-1

私のデータベースにデータを入れようとしましたが、トピックのような例外があります。おそらく、StringをJSONObjectに変換すると問題になるかもしれませんが、私はそれをどのように修正できないのか分かりません。ここでAndroid volley例外: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の場所私は似たようなコードを持っています。

+0

あなたはどこかでHTMLをエコーし​​ています。これがあなたの例外です。 HTMLはJSONとして解析できないので、例外はあります。 – 0xDEADC0DE

+0

PHPのコード –

+0

の 'data'では' date'ではないタイプのため、HTMLコンテンツとこの行に 'new JSONObject(response);というレスポンスが返されます。それ。あなたの応答は何ですか?json形式であれば、それを –

答えて

0

両側でのUTF-8エンコード

    このコードをタブを符号化および実行からBOM無しUTF-8で
  • PHPコードメモ帳++を選択エンコード
  • PHP側:ヘッダ( 'コンテンツタイプ=アプリケーション/ JSON;のcharset = UTF-8')。
+0

Notepad ++で変換します。私はオプションBOMなしでUTF-8でエンコードを選択します。しかし、私はこれで何をしているのですか?header( 'Content-type = application/json; charset = utf-8');私はPHPコードに配置する必要がありますか? – Akida

+0

まだ問題が続く場合は、このPHPコードを配置する必要があります。 –

関連する問題