代码之家  ›  专栏  ›  技术社区  ›  Leo

我可以让JSON.stringify包含值未定义的键吗?

  •  0
  • Leo  · 技术社区  · 6 年前

    我使用类似这样的对象(跟踪某些事物):

    myObj = {
            key1: undefined,
            key2: undefined,
        }
         
    console.log(JSON.stringify(myObj));
    console.log(Object.entries(myObj))

    令我惊讶的是,我刚刚注意到 JSON.stringify(myObj) 只是给予 {} .

    查看MDN replacer 论点说( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify ):

    如果此值为null或未提供,则对象的所有属性 包含在生成的JSON字符串中。

    这似乎是错误的。

    替代品 争论,还是(这是Chrome中的一个bug吗?或者MDN的信息有误?)

    0 回复  |  直到 6 年前
        1
  •  2
  •   Liam Joshua    6 年前

    “Undefined”不是有效的json值,即使它在javascript中是有效的。从 official json standard (ECMA-404,第5节) 对于JSON,使用null而不是undefined

    console.log(JSON.stringify(myObj = {
        key1: null,
        key2: null,
    }));