Wie greife ich auf jeden Wert eines JSON-Objekts zu, das ein Array von Daten enthält? Ich sende ein JSON-Objekt von meiner Android App.Wie greife ich auf jeden Wert eines JSON-Objekts zu?
{"date":"[Tue Apr 05 00:00:00 GMT+05:30 2016, Wed Apr 06 00:00:00 GMT+05:30 2016]"}
Hier ist meine PHP-Code:
<?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
Funktion:
public function updateDates($ngno, $date){
$stmt = $this->conn->prepare("INSERT INTO datepicker(ngno, date) VALUES($ngno, $date)");
$result = $stmt->execute();
$stmt->close();
}
Aber ich erhalte eine Fehlermeldung sagen: PHP Warning:
Invalid argument geliefert für foreach()
check 'print_r ($ json)' –
'$ json [" datum "]' ist kein Array, sondern eine Zeichenkette. – apokryfos
[Di Apr 05 00:00:00 GMT + 05: 30 2016, Mi Apr 06 00:00:00 GMT + 05: 30 2016] ist eine Zeichenfolge. Ich schätze, du musst es explodieren lassen auf ',' und strip out '[' das klingt, als ob du die falschen Daten sendest. – Farkie