一尘不染

JSON.stringify将Infinity转换为null

json

我有JavaScript对象说:

var a = {b: Infinity, c: 10};

当我做

var b = JSON.stringify(a);

它返回以下内容

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);

但是在这种情况下,我必须返回字符串“ Infinity” not
Infinity。如果我返回Infinity,它将再次将Infinity转换为null。

我该如何解决这个问题。


阅读 325

收藏
2020-07-27

共1个答案

一尘不染

像其他答案一样,InfintityJSON也不可以将其存储为值的一部分。

您可以在解析JSON时反转检查器方法:

var c = JSON.parse(
          b,
          function (key, value) {
            return value === "Infinity"  ? Infinity : value;
          }
        );
2020-07-27