2016-04-04 2 views
0

日付の配列を含むJSONオブジェクトの各値にアクセスするにはどうすればよいですか?私のアンドロイドアプリからJSONオブジェクトを送信しています。ここで JSONオブジェクトの各値にアクセスするにはどうすればよいですか?

{"date":"[Tue Apr 05 00:00:00 GMT+05:30 2016, Wed Apr 06 00:00:00 GMT+05:30 2016]"} 

は私のPHPコードです:

<?php 
    require_once 'include/DB_Functions.php'; 
    $db = new DB_Functions(); 

if(isset($_POST['ngno']) && isset($_POST['JSON'])){ 

    $ngno = $_POST['ngno']; 
    $json = json_decode($_POST['JSON'], true); 
    $dates = $json['date']; 

    foreach($dates as $date){ 
     $job = $db->updateDates($ngno, $date); 

     if($job){ 
      $response["error"] = FALSE; 
      echo json_encode($response); 
     } 

     else{ 
      $response["error"] = TRUE; 
      $response["error_msg"] = "Unknown error occurred in Updating!"; 
      echo json_encode($response); 
     } 
    } 

} 

else{ 
    $response["error"] = TRUE; 
    $response["error_msg"] = "Dates are missing!"; 
    echo json_encode($response);  
} 
?> 

updateDates機能:

public function updateDates($ngno, $date){ 

    $stmt = $this->conn->prepare("INSERT INTO datepicker(ngno, date) VALUES($ngno, $date)"); 
    $result = $stmt->execute(); 
    $stmt->close(); 
} 

しかし、私は言って、エラー、PHPの警告を取得:

無効な引数のための供給をforeach()

コメントは現在 stringなく arrayをループしようとしていると言ったよう foreachが戻ってエラーをあなたに与えている理由
+0

check 'print_r($ json)' –

+2

'$ json [" date "]'は文字列ではない配列です。 – apokryfos

+0

[Tue Apr 05 00:00:00 GMT + 05:30 2016、Wed Apr 06 00:00:00 GMT + 05:30 2016]は文字列です。私はあなたが ''でそれを爆発させ、あなたが間違ったデータを送るように聞こえる '' 'を取り除く必要があると思います。 – Farkie

答えて

0

はそのためです。

良いソリューションは、おそらくあなたの設定ので、あなたのJSONリターンの日付ではなくstringarrayを変えることであろう。

これがそうのようarraystringを爆発するだろう解決する方法:

$dates = explode(',', $json['date']);

あなたはあなたを介してループすることができ、配列を持っているこの方法。

関連する問題