yaml2json只解析一行 - 退出而没有错误 - 窗口

时间:2015-11-04 07:41:47

标签: npm yaml npm-install

我第一次使用yaml2json。我的操作系统是Windows 7,我正在使用git bash。 可能是我遗漏了一些非常基本的东西,请你帮忙/指导我。

我尝试将bash文本处理命令的输出发送到test.yml,我可以看到test.yml文件已正确创建。但是一旦我将它作为yaml2json的输入提供,它只解析第一行“version”:1并退出而没有任何错误。

但是,如果我尝试通过网站在线转换test.yml文件内容: - http://yamltojson.com/--生成的.json是正确的。

以下是生成的test.yml文件的内容: -

version: 1
layout: post
lang: en
slug: "checklist"
type: "modal"
title: "Checklist"
published: "true"
categories: "mobile"
tags: "mobile"
action:

title: "Disguise Now" link: "close"
title: "Cancel" link: "home-ready" status: disabled checklist:
title: "Review security plan and update contacts regularly"

yaml2json output

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并通过

启动文档解决了这个问题
---

所以例如......

---
    version: 1
    layout: post
    lang: en
    slug: "checklist"
    type: "modal"
    title: "Checklist"
    published: "true"
    categories: "mobile"
    tags: "mobile"

...效果很好,但可能无法解决您的问题,因为您使用的是生成的yaml文件。

yaml2json存在更多问题(例如,将负数的符号解释为列表项指示符)。所以在很多情况下我使用一个简单的python脚本(提供python 2.7或更高版本)而不是使用yaml2json。我唯一能看到的缺点是,与yaml2json相反,字典条目的顺序不会被保留,但这只是一个宇宙问题,而不是逻辑问题:

python -c 'import sys, json, yaml; print json.dumps(yaml.load(sys.stdin), indent=4)' < myyamlfile.yaml

答案 1 :(得分:0)

@yaccob的解决方案对我有用。只需添加Loader yaml.load(sys.stdin, Loader=yaml.FullLoader参数即可避免过时警告:

python2 -c 'import sys, json, yaml; print json.dumps(yaml.load(sys.stdin, Loader=yaml.FullLoader), indent=4)' < sample.yaml