繁体   English   中英

是否可以json_encode PHP中未定义的值?

[英]Is it possible to json_encode the value undefined in php?

我正在尝试对变量进行json编码,使其具有undefined的值,例如javascript关键字undefined 我试图用谷歌搜索,但是显示的唯一结果是人们在他们的php脚本中发现错误,即实际函数json_encode未定义。 有没有办法做未定义? 为了对值NULL进行编码,它只是没有引号的null 在php中使用"undefined"将其视为字符串,并且由于php认为这是一个常量,因此undefined当然不起作用。

我在javascript中尝试过:

JSON.stringify([undefined,null]);

但它回来了

[null,null]

因此,甚至可以对undefined的值进行编码吗?

我问的原因是我正在使用morris.js图表​​库,当折线图缺少数据点时,它处理null值的方式与undefined值的方式不同,并且我希望将它们作为undefined来处理。 我意识到我可以遍历我的JSON对象并将所有null转换为undefined ,但是我想知道是否有可能对undefined进行编码。

通常,在几种情况下,对undefined处理可能与对null处理不同,因此这将适用于所有情况。

谢谢!

否。JSON不支持undefined值。 最近的亲戚将为nullfalse 根据规范 ,有效的JSON值为:字符串,数字,对象,数组, truefalsenull

此外,您将如何检查其在对象中的存在? 1

var a = {"key1":undefined,"key2":"value2"};
var b = {"key2":"value2"};
if(typeof(a.key1) == typeof(b.key1)){
    alert('absent in both!');
}

看看我的小提琴

如果要取消定义属性,请将其删除,例如在PHP中,在json_encode之前使用unset

$a = array('key1' => null, 'key2' => 'value2');
unset($a['key1']);
json_encode($a); // {"key2":"value2"}

1您可以使用for ... in循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM