php json_解码删除具有空值的属性

php json_解码删除具有空值的属性,php,json,Php,Json,我有一个Json字符串,我正在使用php的Json_decode对其进行解码 弦 "address": { "address": null, "postalCode": null, "phoneNumber": "", "city": null } 当我解码字符串时,我得到 ["address"]

我有一个Json字符串,我正在使用php的Json_decode对其进行解码

            "address": {
                "address": null,
                "postalCode": null,
                "phoneNumber": "",
                "city": null
            }
当我解码字符串时,我得到

            ["address"]=>
                  array(1) {
                  ["phoneNumber"]=>
                       string(0) ""
它本质上是以null作为值剥离属性,即地址、城市。我能阻止这种事情发生吗

完全JSON
属性没有被剥离,您可能正在自己剥离它,执行如下所述的操作:

请参见您的代码示例:

$test = '{"address": {
            "address": null,
            "postalCode": null,
            "phoneNumber": "",
            "city": null
        }}';

$test_decoded = json_decode($test,true);
print_r($test_decoded);

//outputs as expected:
//Array ( [address] => Array ( [address] => [postalCode] => [phoneNumber] => [city] => ) )

无论如何,理论上,
null
与最初没有定义相同。这就是为什么未定义的变量在被访问时被视为null。提供完整的JSON。添加完整的JSON@Dharam@h2ooooooo你说得对,有别的东西在吞噬我的空值。
$test = '{"address": {
            "address": null,
            "postalCode": null,
            "phoneNumber": "",
            "city": null
        }}';

$test_decoded = json_decode($test,true);
print_r($test_decoded);

//outputs as expected:
//Array ( [address] => Array ( [address] => [postalCode] => [phoneNumber] => [city] => ) )