如何在javascript中将JSON转换为YAML

g6ll5ycj  于 2023-04-19  发布在  Java
关注(0)|答案(5)|浏览(227)

我想用javascript将json字符串转换为yaml格式。我在google上搜索了两天,但找不到任何解决方案或库。有java的答案,但没有javascript的。
假设我有一个这样的json字符串:

{
  "json": [
    "fat and rigid"
  ],
  "yaml": [
    "skinny and flexible"
  ],
  "object": {
    "array": [
      {
        "null_value": null
      },
      {
        "boolean": true
      },
      {
        "integer": 1
      }
    ]
  }
}

转换为yaml:

json:
  - fat and rigid
yaml:
  - skinny and flexible
object:
  array:
    - null_value:
    - boolean: true
    - integer: 1

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

mec1mxoz

mec1mxoz1#

您可以使用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());

输出

version: 1.0.0
dependencies:
  yaml: ^1.10.0
package:
  exclude:
    - .idea/**
    - .gitignore
aoyhnmkz

aoyhnmkz2#

你可以使用' js-yaml ' npm包。它被yaml.org官方认可。
要从对象生成YAML字符串,可以使用以下方法:

yaml.dump(JSON.parse("yourJsonString"));

此方法的完整文档可在此处获得:dump().

lkaoscv7

lkaoscv73#

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

ohtdti5x

ohtdti5x4#

我试图将答案打包成一个bash脚本。

#!/bin/bash
#convert-json-to-yaml.sh

if [[ "$1" == "" ]]; then
    echo "You must provide a json file in argument i.e. ./convert-json-to-yaml.sh your_file.json"
    exit 1
fi

jsonFile=$1
yamlFile="$1.yaml"

if [[ "$2" != "" ]]; then
    yamlFile=$2
fi

python -c 'import sys, yaml, json; yaml.safe_dump(json.load(sys.stdin), sys.stdout, default_flow_style=False)' < ${jsonFile} > ${yamlFile}
mfuanj7w

mfuanj7w5#

下面是如何做到这一点:)

import * as YAML from 'yaml';
const YAMLfile = YAML.stringify(JSONFILE);

如果你想创建一个YAML文件,你可以使用de FS。

import * as fs from 'fs';
fs.writeFileSync('./fileName.yaml', YAMLfile);

相关问题