eslint-plugin-json-es
A JSON parser for ESLint that works with a lot of existing ESLint rules or your custom rules.
Installation
npm install eslint-plugin-json-es --save-dev
Configure ESLint
This is an example ESLint configuration for all *.json files. It extends the recommended rules for JSON.
{
"overrides": [{
"files": ["*.json"],
"parser": "eslint-plugin-json-es",
"extends": "plugin:eslint-plugin-json-es/recommended",
"rules": {
}
}]
}
Examples
See the example branch for different use cases and ESLint configurations.
Alternative JSON Plugins
There are three different ways how to add JSON linting to ESLint. Select the package that fits your needs:
eslint-plugin-json-es | eslint-plugin-json | eslint-plugin-jsonc | |
---|---|---|---|
Version | |||
Engine | ESLint espree parser | VSCode JSON Validation | Custom AST parser |
ESLint version | >7.0.0 | ? | >6.0.0 |
Custom rules | ✔ | ❌ | ✔ (1) |
Use existing ESLint rules | ✔ (2) | ❌ | ❌ |
Fix Code | ✔ | ❌ | ✔ (partly) |
Rule compare guide | - | Compare | #TODO :-( |
(1) Uses custom AST node types
(2) Not every ESLint rule makes sense for JSON
Rules Configurations
Recommended
Auto-fix | Rule | Version |
---|---|---|
🔧 | comma-dangle | > 1.3.0 |
no-dupe-keys | > 1.3.0 | |
🔧 | no-extra-parens | > 1.4.0 |
no-irregular-whitespace | > 1.3.0 | |
no-loss-of-precision | > 1.3.0 | |
no-undefined | > 1.3.0 | |
🔧 | quotes | > 1.3.0 |
🔧 | quote-props | > 1.3.0 |
Readable
Based on the recommended rules with stylistic aspects.
Auto-fix | Rule | Comment |
---|---|---|
🔧 | indent | 4 |
🔧 | no-multiple-empty-lines | |
sort-keys | Alternative with fix eslint-plugin-sort-keys-fix |