JSON.stringify(undefined)不是字符串

时间:2013-07-03 16:27:18

标签: javascript json

JSON undefined errors

JSON.stringify(null)返回字符串null

JSON.stringify(undefined)返回值undefined。它不应该返回字符串 undefined吗?

解析值undefined或字符串undefined会得到SyntaxError

有人可以解释为什么JSON在undefined上窒息以及如何在字符串化/解析值时绕过它?

3 个答案:

答案 0 :(得分:7)

undefined无效JSON,因此该功能正常运行。

http://en.wikipedia.org/wiki/JSON#Data_types.2C_syntax_and_example

答案 1 :(得分:2)

if(JSON.stringify(input) === undefined) {
    // error handle
}

if(input === undefined) {
    // error handle
}
else {
    JSON.stringify(input);
}

对不起。生活有时很难。这几乎是你必须要做的。

答案 2 :(得分:1)

原因是null是由一个没有值的变量引起的,所以当转换为JSON时,它会为你提供没有值的JSON,undefined意味着它没有存在,所以你不能创建一个不存在的东西的JSON对象。请检查

 if(typeof myvar === 'undefined')
运行之前

并在代码中正常处理错误。 通常尽量避免在JS中使用undefined它们可以在整个地方发生奇怪的事情,并且与null不同,并且通常以不同的方式处理。