Json_encode不适用于null值

时间:2017-03-20 09:13:00

标签: php oracle11g symfony-2.8

我需要什么

  • 我需要将数组转换为json。

array o / p

 Array
( 
[ID] => 70
[MM_USER_PROFILE_ID] => 1
[FOS_USER_ID] => 84
[TYPE] => ALERT
[FILE_ID] => 157
[PRIORITY] => Medium
[TITLE] => test csv
[DESCRIPTION] => Resource id #390
[IS_ACTIVE] => Y
[CREATED_AT] => 2017-03-15 11:24:28
[UPDATED_AT] => 
[CREATED_BY] => 84
[UPDATED_BY] => 
[LEVEL_ID] => 
[USER_ID] => 84
[LOG_ID] => 
)

php code

   $temp = array();

    $selectQ = "SELECT COUNT(*) as  new_if_count  ";
    $total_count = $this->container->get('db_core_function_services')->runRawSql($selectQ);


    foreach($notification_result as $key =>$value)
    {
      //solution 1 i tried json_encode
        $temp['all_notifications']=json_encode($value);
    }


  print_r($tmp)  o/p false.

  //solution 2 i tried
    $encoders = array(new JsonEncoder());
    $normalizers = array(new GetSetMethodNormalizer());
    $serializer = new Serializer($normalizers, $encoders);

    $response = new Response($serializer->serialize($temp, 'json'));
    $response->headers->set('Content-Type', 'application/json');
    return $response;
  • 请建议解决方案如何编码此阵列。

错误

 An unexpected value could not be normalized: NULL
  • 因为我用谷歌搜索我有问题是解析数组中的空值。

  • 请建议

解决方案我发现['description']是创建问题的blob内容。

适用于我的代码

   foreach($notification_result as $key =>$value)
    {
        if(array_key_exists('DESCRIPTION', $value)){
            $blob =  $value['DESCRIPTION'];
            $value['DESCRIPTION'] = stream_get_contents($blob);
        }
        $temp['all_notifications']=$value;
    }
    $temp_count=$total_count[0];

    $data=array_merge($temp_count,$temp);

2 个答案:

答案 0 :(得分:1)

foreach($notification_result as $key =>$value) {
      //solution 1 i tried json_encode
//if (!empty($value)) //uncomment if need cut empty variables
        $array .= $temp['all_notifications'] = array($key =>$value);
    }    
$json = json_encode ($array);
    echo $json;

答案 1 :(得分:0)

你必须首先初始化这是一个数组。只需在foreach循环之前添加这一行来尝试它

$temp = array();