我使用json_encode将数组转换为json。但是,如果某个键的值为空,json会给出大括号{}。我希望该值应为空或“”为空。请帮助。下面是代码:

<?php
$postData='<Lead>
<General>
<dealer></dealer></General> </Lead>';
 $array_data = json_encode(simplexml_load_string($postData));
$array_data=json_decode($array_data) ;
$dealer=$array_data->General->dealer;
$data=array('dealer'=>$dealer);
echo  $objectJson =json_encode($data);
?>


response is : {"dealer":{}}

最佳答案

这是因为$dealer是一个空数组,在json中与{}相同。
三元使用

'dealer'=>((!$dealer) ? $dealer : null)

这意味着,如果$dealer为空,则指定一个空值,这将更改空数组,或者将json中的{}改为null
$data=array('dealer'=>((!$dealer) ? $dealer : null));


echo  $objectJson =json_encode($data);

如果您只是显示它,而在下面的代码中不再使用它,请避免声明它,而只显示它
echo json_encode($data);

09-26 12:38