Попытка сохранить массив объектов php в файл json, но логические свойства сохраняются в строках:
[
{
"title" : "My Page",
"url" : "mypage",
"type" : "content",
"final" : "false" // supposed to be simply false
}
]
почему это? … есть флаг, который я мог бы использовать или что-то? в настоящее время я использую JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK
У меня есть ощущение, что преобразование работает правильно, и что значение на самом деле является строкой. Вы можете подтвердить с помощью gettype($var)
,
Обратите внимание, что кодировка URL дает только строковые значения. Вы можете попробовать перейти на JSON.
Чтобы дать PHP возможность обрабатывать application / json, добавьте эту функцию и затем вызовите ее:
function convertJsonBody() {
$methodsWithDataInBody = array(
'POST',
'PUT',
);
if (
isset($_SERVER['CONTENT_TYPE'])
&& (strpos(strtolower($_SERVER['CONTENT_TYPE']), 'application/json') !== FALSE)
&& isset($_SERVER['REQUEST_METHOD'])
&& in_array($_SERVER['REQUEST_METHOD'], $methodsWithDataInBody)
) {
$_POST = json_decode(file_get_contents('php://input'), TRUE);
foreach($_POST as $key => $value) {
$_REQUEST[$key] = $value;
}
}
}
Других решений пока нет …