/grunt-convert

Grunt task to convert to or from JSON, YAML, XML, PLIST or CSV.

Primary LanguageJavaScriptMIT LicenseMIT

grunt-convert NPM version Build Status

Convert between XML, JSON and YAML, from one format to another.

Getting Started

If you haven't used grunt before, be sure to check out the Getting Started guide.

From the same directory as your project's Gruntfile and package.json, install this plugin with the following command:

npm install grunt-convert --save-dev

Once that's done, add this line to your project's Gruntfile:

grunt.loadNpmTasks('grunt-convert');

If the plugin has been installed correctly, running grunt --help at the command line should list the newly-installed plugin's task or tasks. In addition, the plugin should be listed in package.json as a devDependency, which ensures that it will be installed whenever the npm install command is run.

Options

type

Type: String
Default: undefined

Define content when using unknown extension.

indent

Type: Int
Default: 2

Force indentation ("pretty printing") for JSON and YAML.

inline

Type: Int
Default: 8

Force indentation ("pretty printing") for YAML only.

header

Type: boolean
Default: false

Use when converting JSON/YAML to XML. Add XML tag header.

See xml2js for other available options

cvs.delimiter

Type: string
Default: ,

Set the field delimiter. One character only.

cvs.columns

Type: boolean
Default: true

List of fields or true if autodiscovered in the first CSV line.

See node-csv for other available options.

Usage Examples

Convert CSV to JSON

grunt.initConfig({
  convert: {
    options: {
      explicitArray: false,
    },
    csv2json: {
      src: ['test/fixtures/csv2json.csv'],
      dest: 'tmp/result/csv2json.json'
    }
  }
});

Convert JSON to XML

grunt.initConfig({
  convert: {
    options: {
      explicitArray: false,
    },
    json2xml: {
	    options: {
		    xml: {
		      header: true
		    }
		  },
      src: ['test/fixtures/sublime.json'],
  		dest: 'tmp/result/sublime.xml'
    }
  }
});

Convert JSON to YAML

grunt.initConfig({
  convert: {
    json2yml: {
      files: [
        {
          expand: true,
          cwd: 'test/fixtures/',
          src: ['**/*.json'],
          dest: 'tmp/result/',
          ext: '.yml'
        }
      ]
    }
  }
});

Convert XML to YAML

grunt.initConfig({
  convert: {
    options: {
      explicitArray: false,
    },
    xml2yml: {
      src: ['convert.xml'],
      dest: 'dist/convert.yml'
    }
  }
});

Convert XML to JSON

grunt.initConfig({
  convert: {
    options: {
      explicitArray: false,
    },
	xml2json: {
		files: [
		  {
		    expand: true,
		    cwd: 'test/fixtures/',
		    src: ['**/*.xml'],
		    dest: 'tmp/result/',
		    ext: '.json'
		  }
		]
	},
  }
});

Convert PLIST to JSON

grunt.initConfig({
  convert: {
    plist2json: {
      files: [
        {
          expand: true,
          cwd: 'test/fixtures/',
          src: ['**/*.plist'],
          dest: 'tmp/result/',
          ext: '.json'
        }
      ]
    }
  }
});

Convert JSON to PLIST

grunt.initConfig({
  convert: {
    json2plist: {
      files: [
        {
          expand: true,
          cwd: 'test/fixtures/',
          src: ['**/*.json'],
          dest: 'tmp/result/',
          ext: '.plist'
        }
      ]
      }
  }
});

Contributing

We welcome all kinds of contributions! The most basic way to show your support is to star the project, and if you'd like to get involved please see the Contributing to grunt-convert guide for information on contributing to this project.

Changes

DATE VERSION CHANGES

  • 2014-05-03 v0.1.11 Fix (empty string), xml2js (only invoke parseString callback once),XML
    parser error display a warning and abort Grunt immediately
  • 2014-03-11 v0.1.10 Fixing options.type issue and adding more tests around it
  • 2013-12-14 v0.1.9 Fix json to yml converter,Add type option to define content with unknown extension
  • 2013-12-18 v0.1.8 adding missing write file statement when converting xml to json
  • 2013-12-12 v0.1.7 Fix async issues
  • 2013-12-02 v0.1.6 Add support for Grunt 0.4.2,Use external library,Fix missing "Release
    History"
  • 2013-09-10 v0.1.5 Add support for JSON to CSV.
  • 2013-09-10 v0.1.4 Add support for CSV to JSON.
  • 2013-07-16 v0.1.3 JSON/YAML to XML.
  • 2013-07-15 v0.1.2 Add support YAML. Added XML to JSON/YAML, JSON to YAML, and YAML to JSON.
  • 2013-07-02 v0.1.1 XML to JSON.

Author

Jon Schlinkert

Hariadi Hinta

License

Copyright (c) 2014 Jon Schlinkert, contributors.
Released under the MIT license

This file was generated by grunt-verb on August 15, 2014.