如何在javascript中将JSON转换为YAML

如何在javascript中将JSON转换为YAML,javascript,json,yaml,Javascript,Json,Yaml,我想用javascript将json字符串转换成yaml格式。我在谷歌上试了两天,但没有找到任何解决方案或库。 有一些答案适用于java,但不适用于javascript 假设我有如下json字符串: { "json": [ "fat and rigid" ], "yaml": [ "skinny and flexible" ], "object": { "array": [ { "null_value": null

我想用javascript将json字符串转换成yaml格式。我在谷歌上试了两天,但没有找到任何解决方案或库。 有一些答案适用于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

有一个在线转换器,但如何在javascript中转换为它。

如果有人仍想将JSON转换为YAML,您可以使用以下javascript库:

使用“”npm包!这是yaml.org官方认可的。(如果你想特别确定&这篇文章已经过时了,去看看它推荐了哪个软件包。)我最初使用的是“json2yaml”,在将json(作为字符串)转换为yaml时出现了奇怪的解析行为。

我试图将答案打包成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}
#/bin/bash
#convert-json-to-yaml.sh
如果[[“$1”==”];然后
echo“您必须在参数中提供一个json文件,即../convert-json-to-yaml.sh your_file.json”
出口1
fi
jsonFile=$1
yamlFile=“$1.yaml”
如果[“$2”!=”];然后
yamlFile=2美元
fi
python-c'导入sys、yaml、json;yaml.safe_dump(json.load(sys.stdin)、sys.stdout、默认值_flow_style=False)<${jsonFile}>${yamlFile}
您可以使用NPM软件包

const YAML=require('YAML');
常量jsonObject={
版本:“1.0.0”,
依赖项:{
yaml:“^1.10.0”
},
包装:{
排除:[“.idea/**”,“.gitignore”]
}
}
const doc=新的YAML.Document();
doc.contents=jsonObject;
log(doc.toString());
输出

版本:1.0.0
依赖项:
yaml:^1.10.0
包裹:
排除:
-.想法/**
-.gitignore

YAML是JSON的超集:任何有效的JSON也是有效的YAML;您可能不需要转换任何内容。Google'npm Json to yaml'。这里有超过六个图书馆。@Jacob谢谢你,你能把它作为答案添加进来吗?这样,如果有人来看一个合适的答案,就可以得到好处或挽救他们的一天?删除我的答案,因为它收集了太多的反对票。不过,我坚持这一点。如果您有需要YAML输入的代码,而您有JSON,则不必将JSON转换为YAML。这是一个合法的情况下,你不需要转换。如果您只是因为喜欢语法而想要转换(为什么?!),请查看这些其他解决方案。您能否添加一个如何使用js yaml解析的示例,我尝试使用yaml.parse(),但它已被弃用。为了节省所有人的时间,并回答@omer。json字符串到yaml字符串:
yaml.dump()
确保将对象传递给
dump
函数(不是字符串–在我的例子中,我必须使用
dump(json.parse(…)
)这是dope,要尝试一下