不带引号的 JSON.stringify 键

时间:2021-02-07 18:23:42

标签: javascript json

是否可以从 JSON.stringify 中的键中删除引号?通常它会有引号:

const object = { name: "Foo Bar", birthdate: { date: "2000-01-01", time: "12:34" } };
console.log(JSON.stringify(object, null, "    "));

输出:

{
    "name": "Foo Bar",
    "birthdate": {
        "date": "2000-01-01",
        "time": "12:34"
    }
}

我想要的是这样的:

{
    name: "Foo Bar",
    birthdate: {
        date: "2000-01-01",
        time: "12:34"
    }
}

这是可能的,还是我必须创建自己的 JSON 序列化程序?

3 个答案:

答案 0 :(得分:1)

我使用下面的 NPM 包来实现这一点。

https://www.npmjs.com/package/stringify-object

答案 1 :(得分:1)

听起来您正在寻找一种 data-serialization 格式,它对 human-readable 和版本控制友好,但对引号的要求不像 JSON 那样严格。

此类格式包括:

  • Relaxed JSON (RJSON)(简单键和简单值一般不需要引号)
  • Hjson(简单键和简单值一般不需要引号)
  • YAML(键和值通常不需要引号)
  • JavaScript object literal(当传递一个 JavaScript 对象时,也被许多“console.dir()”的实现打印出来;简单的键通常不需要被引用,但字符串值必须用单引号或双引号引用引号)

为了完整性:

JSON(需要在键周围加上双引号,也称为属性名称,并且需要在字符串数据值周围加上双引号)。

答案 2 :(得分:0)

A $_.State -in 'Completed', 'Failed', 'Stopped' 基本上是一个 Wait-Job -Timeout 0 类型,服务器理解的通用语言,这就是为什么我们需要将 JSON 发送到服务器进行进一步处理。你想要得到的是 javascript 中的一个对象。

但是您已经有了可以使用的对象。

-Timeout 1
相关问题