Я послал объект JSON в PHP для запроса моей базы данных и возвращает результирующий набор, однако я получаю некоторое необычное поведение - мой объект JSON приходит в моем сценарии, как:json_decode разлагает мой объект JSON
{ "username": "Bobby", "dob": "2015-02-12T00:00:00.000Z" }
Какого выглядит тоже хорошо мне для того, чтобы выполнять операции над этими данными я знаю, что нужно использовать json_decode
так, что PHP принимает его как массив, однако, когда я выполняю json_decode($request)
массив выхода:
{ undefined: 24, Bobby: ["dob"]}
Я никогда не имел это случается раньше и не может и др моя голова вокруг точно, почему это происходит
EDIT: Моя полная операция выглядит как:
if(isset($request)) {
var_dump($request);
$json = json_decode($request, true);
var_dump($json);
}
Первый свалка является правильным, когда декодируется я получаю перекос OUTPUT
EDIT: I я отправляю объект JSON из Angular, но я не думаю, что это должно вызвать какие-либо проблемы, однако это единственное, что я сделал по-другому, чем то, что у меня было в предыдущих приложениях:
if (!(userName === undefined) && !(userDob === undefined))
{
var json = { "name" : userName, "dob" : userDob };
// Create POST request to the file in the url, send it to PHP in JSON format
var callback = $http.post($scope.url, json);
callback.success(function(data, status) {
...
});
}
EDIT Я не совсем понимаю, почему, но с использованием print_f
или var_dump
поставлял искаженные результаты, однако, если я просто сделал:
$json = json_decode($request);
$name = $json->name;
$dob = $json->dob;
echo $name;
echo $dob;
возвращает результаты, которые я бы ожидать.
Handy tool: http://jsonlint.com/ – AbraCadaver
Это объект Javascript, а не JSON. – OIS
Прочтите [документацию] (http://json.org/). Ключи должны быть «строковыми». –