2015-11-04 2 views
0

J'utilise yaml2json pour la première fois. Mon OS est Windows 7 et j'utilise git bash. Peut-être qu'il me manque quelque chose de très basique, pouvez-vous les gars s'il vous plaît aider/guider moi ici.yaml2json est en train d'analyser une seule ligne - quitte sans erreur --fenêtres

J'ai essayé d'envoyer la sortie de la commande de traitement de texte bash à test.yml et je peux voir que le fichier test.yml est créé correctement. Mais une fois que je l'ai introduit comme entrée dans yaml2json, il analyse juste la première ligne "version": 1 et quitte sans aucune erreur.

Cependant, si j'essaie de convertir en ligne le contenu du fichier test.yml: - http://yamltojson.com/-- le .json résultant est correct.

Voici le contenu du fichier test.yml généré: -

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

Répondre

0

j'ai rencontré le même problème et a résolu le problème en démarrant le document avec

--- 

Alors par exemple ...

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

... fonctionne bien, mais peut ne pas résoudre votre problème, car vous utilisez un fichier yaml généré.

Il y a plus de problèmes avec yaml2json (par exemple interpréter le signe d'un nombre négatif comme indicateur d'élément de liste). Donc, dans de nombreux cas, j'utilise un simple script python (python 2.7 ou supérieur fourni) au lieu d'utiliser yaml2json. Seul inconvénient que je peux voir est que contrairement à yaml2json l'ordre des entrées de dictionnaire n'est pas conservé, mais c'est juste un problème cosmétique, pas un logique:

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