2016-05-02 3 views
-1

Я получил этот YAML файл:Преобразовать YAML в JSon

description: 
    is_a: AnnotationProperty 
    labelEN: description 
    labelPT: descrição 

relevance: 
    is_a: AnnotationProperty 
    domain: Indicator 
    labelEN: relevance 
    labelPT: relevância 

title: 
    is_a: AnnotationProperty 
    labelPT: título 
    labelEN: title 
    range: Literal 

и мне нужно, чтобы преобразовать его в формат JSON, так что я могу получить что-то вроде этого:

{ 
    "description": { 
     "is_a": "AnnotationProperty", 
     "labelEN": "description", 
     "labelPT": "descrição" 
    }, 
    "relevance": { 
     "is_a": "AnnotationProperty", 
     "domain": "Indicator", 
     "labelEN": "relevance", 
     "labelPT": "relevância" 
    }, 
    "title": { 
     "is_a": "AnnotationProperty", 
     "labelPT": "título", 
     "labelEN": "title", 
     "range": "Literal" 
    } 
} 

и сохранить его в JS переменная ...

Итак, как я могу это сделать?

ответ

0

Существует, к сожалению, ничего в стандартной библиотеке в JavaScript, которая сделает это за вас.

Возможно построить собственное, но это очень много работы. Вам нужно будет создать парсер, и, вероятно, будет много крайних случаев, которые вам придется решать. Возможно, стоит подумать об использовании third-party module.

3

Вы можете решить это с помощью простого скрипта javascript, выполняющегося на узле.

  1. установить Node.js
  2. установить js-yaml пакет: npm install js-yaml -g

Затем сохранить этот скрипт в файл и запустить его с Node.js:

var inputfile = 'input.yml', 
    outputfile = 'output.json', 
    yaml = require('js-yaml'), 
    fs = require('fs'), 
    obj = yaml.load(fs.readFileSync(inputfile, {encoding: 'utf-8'})); 
// this code if you want to save 
fs.writeFileSync(outputfile, JSON.stringify(obj, null, 2));