массивы — php json_encode сохраняет логическое значение в строковом формате

Попытка сохранить массив объектов php в файл json, но логические свойства сохраняются в строках:

[
{
"title" : "My Page",
"url"   : "mypage",
"type"  : "content",
"final" : "false" // supposed to be simply false
}
]

почему это? … есть флаг, который я мог бы использовать или что-то? в настоящее время я использую JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK

0

Решение

У меня есть ощущение, что преобразование работает правильно, и что значение на самом деле является строкой. Вы можете подтвердить с помощью 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;
}
}
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector