2017-02-13 3 views
0

エミュレータで作成したデータベース全体を自分のサーバーに送信する必要があります。 JSONについて学んだだけです。PHPへのJSONオブジェクト配列の書き込み

はシンプル以降、私はこのコードを試してみました:

JSONObject jsonObject = new JSONObject(); 

      try { 
       jsonObject.put("comment", "OK1"); 
       jsonObject.put("category", "pro1");     

       String message = jsonObject.toString(); 
       OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
       wr.write(message); 
       wr.flush(); 
       wr.close(); 

を、私のPHPは

$json = file_get_contents('php://input'); 
$obj = json_decode($json); 
$comment = $obj->{'comment'}; 
$category = $obj->{'category'}; 
$sql = "INSERT INTO test1 (comment, category) VALUES ('$comment', '$category')"; 

であると私は私のテーブルにオブジェクトを置くことができますよ。今、私は複数のオブジェクトを持つことができるように配列を作成したいと思います(これは正しい方法ですと思っていますか?名前と年齢の付いた複数の犬がいる場合と同様に、配列、右?)

私の配列内のオブジェクトが1つのみでこのコードを試してみましたが、データベースに何も印刷されません。私は何を変更するのか分からないので、PHPコードを変更していません。

JSONObject jsonObject = new JSONObject(); 
    JSONArray jsonArray = new JSONArray(); 
      try { 
       jsonObject.put("comment", "OK1"); 
       jsonObject.put("category", "pro1"); 
       jsonArray.put(jsonObject); 

       String message = jsonArray.toString(); 
       OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 

       wr.write(message); 
       wr.flush(); 
       wr.close(); 

配列にオブジェクトを入れ、その後、私が送信するために2つのまたは3のオブジェクトを持っている場合、私は、配列を最終的にサイクル行う方法、それらを書いて、これはそれを行うための正しい方法であると仮定すると?

ありがとうございます!このような

答えて

2

何か作業をする必要があります:

$json = file_get_contents('php://input'); 

// Decode into array instead of stdclass 
$arr = json_decode($json, true); 

// Loop each object in the outer array 
foreach ($arr as $obj) { 
    $comment = $obj['comment']; 
    $category = $obj['category']; 
    $sql = "INSERT INTO test1 (comment, category) VALUES ('$comment', '$category')"; 
} 
+0

は、私はあなたのと何もPHPの部分については、上記に書いたものの私のコードを交換し、私のデータベースに掲載されます:( – Pam

+0

@Pamそれは全体のコードではありません、それはイラストレーションのために役立ちます。ループを作成し、そのループ内ですでに行っていることを実行することです。オブジェクトごとに新しい行を挿入する必要があります。 – OptimusCrime

関連する問題