如何在javascript中将JSON转换为YAML

san*_*mar 6 javascript json yaml

我想将javascript中的json字符串转换为yaml格式。我最近两天在google上尝试操作,但未找到任何解决方案或库。有适用于Java的答案,而不适用于javascript。

假设我有这样的json字符串:

{
  "json": [
    "fat and rigid"
  ],
  "yaml": [
    "skinny and flexible"
  ],
  "object": {
    "array": [
      {
        "null_value": null
      },
      {
        "boolean": true
      },
      {
        "integer": 1
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

转换为yaml:

json:
  - fat and rigid
yaml:
  - skinny and flexible
object:
  array:
    - null_value:
    - boolean: true
    - integer: 1
Run Code Online (Sandbox Code Playgroud)

有一个在线转换器http://www.json2yaml.com/,但是如何在javascript中转换成它。

Puj*_*ava 11

您可以使用yaml NPM 包。

const YAML = require('yaml');

const jsonObject = {
    version: "1.0.0",
    dependencies: {
        yaml: "^1.10.0"
    },
    package: {
        exclude: [ ".idea/**", ".gitignore" ]
    }
}

const doc = new YAML.Document();
doc.contents = jsonObject;

console.log(doc.toString());
Run Code Online (Sandbox Code Playgroud)

输出

version: 1.0.0
dependencies:
  yaml: ^1.10.0
package:
  exclude:
    - .idea/**
    - .gitignore
Run Code Online (Sandbox Code Playgroud)

  • “YAML”包现在包含一个“stringify()”方法,因此您只需执行“YAML.stringify(jsonObject)”即可获得相同的结果。请参阅[此处](https://eemeli.org/yaml/#yaml-stringify)的文档。 (6认同)

小智 9

使用' js-yaml ' npm 包!这是 yaml.org 官方认可的那个。(如果你想特别确定 && 这篇文章已经过时,请自己查看yaml.org以查看它推荐的包。)我最初使用的是“json2yaml”,并且在将 json(作为字符串)转换为 yaml 时遇到了奇怪的解析行为。

  • 您能否添加一个如何使用 js-yaml 解析的示例,我尝试使用 yaml.parse() 但它已被弃用.. (4认同)
  • 为每个人节省 5m,并回答@omer。json 字符串转 yaml 字符串:`yaml.dump(<your object>)` (3认同)

dub*_*ube 5

如果有人仍然想将JSON转换为YAML,则可以使用以下JavaScript库:https : //www.npmjs.com/package/json2yaml