THIS PROJECT IS NO LONGER MAINTAINED
A grunt plugin for converting java property files to JSON files.
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-properties-to-json --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-properties-to-json');
With the following config, each .properties
file in src will be converted to json and will be saved as a .json
file in the same directory as the property file.
grunt.initConfig({
propertiesToJSON: {
main: {
src: ['path/to/properties/files', 'another/path/to/properties/files']
}
}
});
It is also possible to define a destination folder for the generated json files:
grunt.initConfig({
propertiesToJSON: {
main: {
src: ['path/to/properties/files', 'another/path/to/properties/files'],
dest: 'tmp'
}
}
});
You can split keys in the property files by using the splitKeysBy
option (a string or regular expression). With this option the keys in the property files will be splitted by the given string or regular expression and used as nested keys in the JSON output.
grunt.initConfig({
propertiesToJSON: {
main: {
src: ['path/to/properties/files', 'another/path/to/properties/files'],
dest: 'tmp',
options: {
splitKeysBy: '.'
}
}
}
});
You can explicitly include
and/or exclude
namespaces, effectively whitelisting or blacklisting. For each option, provide a string, regular expression or an array of strings and regular expressions. If both options are used, exclusions are applied first, then inclusions. If you combine this option with splitKeysBy
you can include and/or exclude nested keys by respectively setting the deepInclude
or deepExclude
option to true
.
grunt.initConfig({
propertiesToJSON: {
main: {
src: ['path/to/properties/files', 'another/path/to/properties/files'],
dest: 'tmp',
options: {
splitKeysBy: '.',
exclude: ['message', /label$/],
deepExclude: true
}
}
}
});
If you want multiple property files to be merged to one JSON file, you can set the merge
option to true
. The destination should be a file in which the merged JSON output will be written. You can combine this option with the options mentioned above (the merge will be applied as last operation, so splitted keys will also be merged).
grunt.initConfig({
propertiesToJSON: {
main: {
src: ['path/to/properties/files', 'another/path/to/properties/files'],
dest: 'tmp.json',
options: {
merge: true
}
}
}
});
This project is released under the MIT license.