A JSON parser for ESLint.
npm install eslint-plugin-json-es


!NPM
A JSON parser for [ESLint] that works with a lot of existing ESLint rules or your custom rules.
```
npm install eslint-plugin-json-es --save-dev
This is an example [ESLint] configuration for all *.json files.
It _extends_ the recommended rules for JSON.
`json`
{
"overrides": [{
"files": ["*.json"],
"parser": "eslint-plugin-json-es",
"extends": "plugin:eslint-plugin-json-es/recommended",
"rules": {
}
}]
}
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 | !NPM version | !NPM version | !NPM 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_
| 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 |
| Auto-fix | Rule | Comment |
|----------|------------------------|---------------------|
|🔧| indent | 4 |
|🔧| no-multiple-empty-lines | |
| | sort-keys |Alternative with fix [eslint-plugin-sort-keys-fix] |
A custom 'use-camelcase' rule is available.
Based on the ESLint camelcase rule with minor adjustments.
__Configuration__
`json``
{
"rules": {
"json-es/use-camelcase": ["error", {"allow": ["FOO", "[regex]*"]}]
}
}
[ESLint]: https://eslint.org/
[custom parser]: https://eslint.org/docs/developer-guide/working-with-custom-parsers
[eslint-plugin-json]: https://github.com/azeemba/eslint-plugin-json
[eslint-plugin-jsonc]: https://github.com/ota-meshi/eslint-plugin-jsonc
[eslint-plugin-sort-keys-fix]: https://github.com/leo-buneev/eslint-plugin-sort-keys-fix
[example branch]: https://github.com/zeitport/eslint-plugin-json/tree/example