php json_encode以字符串格式保存boolean

时间:2017-02-19 21:41:22

标签: php arrays json

尝试将php对象数组保存到json文件中,但布尔属性保存在字符串中:

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

为什么? ......有没有我可以使用的旗帜或什么?目前我正在使用JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK

1 个答案:

答案 0 :(得分:3)

我感觉转换工作正常,并且该值实际上是一个字符串。您可以使用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;
          }
     }
}