2017-01-06 113 views
2

我正在使用json_encode將數組轉換爲json。但是,如果某個鍵的值爲空,json會給出大括號{}。我希望該值應該爲空或「」空白。請幫助。下面是代碼:json_encode函數返回大括號{}當數組爲空php

<?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":{}} 
+0

嘗試在編碼之前檢查你的內容。 – Fyntasia

+1

您正在查看錯誤的地方,'simplexml_load_string'生成空對象,所以'json_encode()'正確地將它們編碼爲'{}':https://eval.in/710579 – jeroen

回答

2

這是因爲你的$dealer是一個空數組這JSON是相同{}

使用三元

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

這意味着如果$dealer是空的分配一個null將會將您的空數組或{} in json更改爲null

$data=array('dealer'=>((!$dealer) ? $dealer : null)); 

echo $objectJson =json_encode($data); 

,如果你只是顯示它並沒有在代碼中再次使用下面可以避免聲明它,而不是僅僅顯示它

echo json_encode($data);