JSON.stringify(null)
返回字符串null
。
JSON.stringify(undefined)
返回值undefined
。它不应该返回字符串 undefined
吗?
解析值undefined
或字符串undefined
会给出一个SyntaxError
.
有人可以解释为什么 JSON 会阻塞undefined
以及在字符串化/解析值时如何绕过它?
JSON.stringify(null)
返回字符串null
。
JSON.stringify(undefined)
返回值undefined
。它不应该返回字符串 undefined
吗?
解析值undefined
或字符串undefined
会给出一个SyntaxError
.
有人可以解释为什么 JSON 会阻塞undefined
以及在字符串化/解析值时如何绕过它?
undefined
不是有效的 JSON,因此该函数可以正常工作。
http://en.wikipedia.org/wiki/JSON#Data_types.2C_syntax_and_example
if(JSON.stringify(input) === undefined) {
// error handle
}
或者
if(input === undefined) {
// error handle
}
else {
JSON.stringify(input);
}
对不起。生活有时很艰难。这几乎是你必须做的。
原因null
是由一个没有值的变量引起的,所以当转换为 JSON 时,它会为你提供没有值的 JSON,未定义意味着它根本不存在,所以你可以' t 创建一个不存在的 JSON 对象。只需检查
if(typeof myvar === 'undefined')
在您运行它并在代码中优雅地处理错误之前。一般来说,尽量避免undefined
在你的 JS 中到处乱扔奇怪的东西,而且它们不一样,null
而且通常处理方式不同。