相关疑难解决方法(0)

JSON遗漏了Infinity和NaN; ECMAScript中的JSON状态?

知道为什么JSON遗漏了NaN和+/- Infinity?它将Javascript放在奇怪的情况下,否则,如果它们包含NaN或+/-无穷大值,那么否则可以序列化的对象不会.

看起来像是一成不变的:见RFC4627ECMA-262(第24.3.2节,JSON.stringify,第4节,第507页,最后编辑):

有限数字通过调用进行字符串化ToString(number).无论符号如何,NaN和Infinity都表示为String null.

javascript json ecma262

161
推荐指数
6
解决办法
6万
查看次数

JSON.stringify将Infinity转换为null

我有JavaScript对象说:

var a = {b: Infinity, c: 10};
Run Code Online (Sandbox Code Playgroud)

当我做

var b = JSON.stringify(a);
Run Code Online (Sandbox Code Playgroud)

它返回以下内容

b ="{"b":null,"c":10}";

JSON.stringify如何将对象转换为字符串?

我尝试过MDN解决方案.

function censor(key, value) {
  if (value == Infinity) {
    return "Infinity";
  }
  return value;
}
var b = JSON.stringify(a, censor);
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我必须返回字符串"Infinity" Infinity.如果我返回Infinity,它会再次将Infinity转换为null.

我该如何解决这个问题.

javascript json infinity stringify

15
推荐指数
3
解决办法
6465
查看次数

标签 统计

javascript ×2

json ×2

ecma262 ×1

infinity ×1

stringify ×1