我正在尝试对变量进行json编码,使其值为undefined
,如javascript关键字undefined
。我试图谷歌这一点,但显示的唯一结果是人们在他们的PHP脚本中得到错误,实际函数json_encode
是未定义的。有办法做undefined吗?要对值NULL
进行编码,它只是null
没有引号。在php中使用"undefined"
将其视为字符串,当然undefined
不起作用,因为php认为它是一个常量。
我在javascript中试过这个:
JSON.stringify([undefined,null]);
但它返回了
[null,null]
甚至可以对值undefined
进行编码?
我问的原因是我正在使用morris.js图表库,当您的折线图缺少数据点时,它处理的null
值与undefined
值不同,我想要它们被处理为undefined
。我意识到我可以通过我的JSON
对象循环并将所有null
转换为undefined
s,但我想知道是否有可能编码undefined
。
通常,在某些情况下,undefined
的处理方式可能与null
不同,因此适用于所有这些情况。
谢谢!
答案 0 :(得分:5)
没有。 JSON不支持undefined
的值。最近的亲戚将是null
或false
。根据{{3}},有效的JSON值为:字符串,数字,对象,数组,true
,false
和null
。
此外,你如何检查它在物体中的存在? 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
之前使用my fiddle:
$a = array('key1' => null, 'key2' => 'value2');
unset($a['key1']);
json_encode($a); // {"key2":"value2"}
1 您可以使用unset
循环。