How to convert YAML into JSON in JavaScript

When working with configuration data, its common to encounter scenarios where the data needs to be converted into another format. YAML is one of the most popular configurations file types used in modern web development.

If you are looking to convert YAML to JSON however there is no native JavaScript parsing functionality. Thankfully, a great package exists that easily facilities this conversion.

js-yaml acts as a standalone JavaScript YAML parser. It works in node.js and all major browsers. It will take a YAML file like this:

# An employee record 
Tommy: 
    name: Tommy Verceti 
    job: Developer 
    skill: Elite

and parse it into familiar JSON:

{ Tommy: { name: 'Tommy Verceti', job: 'Developer', skill: 'Elite' } }

You can use the online tool to do this:

Or if you want this done in your Node environment, install the dependency locally :

npm install js-yaml

And in a Node.js file:

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

This conversion is pretty easily done. I hope this helped.

Gareth Dunne

Senior JavaScript Engineer and creator of JSdiaries. Passionate about the latest in web technologies and how it can provide value for my clients.