{"id":22423327,"url":"https://github.com/prantlf/v-jsonlint","last_synced_at":"2026-01-27T17:33:18.486Z","repository":{"id":178457026,"uuid":"658272328","full_name":"prantlf/v-jsonlint","owner":"prantlf","description":"JSON/JSONC/JSON5 validator and pretty-printer.","archived":false,"fork":false,"pushed_at":"2025-07-31T14:19:46.000Z","size":35,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-31T18:08:32.367Z","etag":null,"topics":["json","json5","jsonc","jsonlint","lint","validate"],"latest_commit_sha":null,"homepage":"","language":"V","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prantlf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-06-25T09:21:53.000Z","updated_at":"2025-07-31T14:19:49.000Z","dependencies_parsed_at":"2024-04-17T21:27:09.910Z","dependency_job_id":"80e7fe2c-9746-4527-a7d1-3f1a82cc7f5a","html_url":"https://github.com/prantlf/v-jsonlint","commit_stats":null,"previous_names":["prantlf/v-jsonlint"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/prantlf/v-jsonlint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prantlf%2Fv-jsonlint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prantlf%2Fv-jsonlint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prantlf%2Fv-jsonlint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prantlf%2Fv-jsonlint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prantlf","download_url":"https://codeload.github.com/prantlf/v-jsonlint/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prantlf%2Fv-jsonlint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28816939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T12:25:15.069Z","status":"ssl_error","status_checked_at":"2026-01-27T12:25:05.297Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["json","json5","jsonc","jsonlint","lint","validate"],"created_at":"2024-12-05T18:10:02.361Z","updated_at":"2026-01-27T17:33:18.472Z","avatar_url":"https://github.com/prantlf.png","language":"V","funding_links":[],"categories":["json"],"sub_categories":[],"readme":"# jsonlint\n\n[JSON]/[JSONC]/[JSON5] validator and pretty-printer.\n\n* Uses a [fast] recursive descent parser written in V.\n* Shows detailed [error messages](#errors) with location context.\n* Optionally supports [JSONC] - ignores single-line and multi-line JavaScript-style comments treating them as whitespace and also trailing commas in arrays ans objects.\n* Partially supports [JSON5] - allows single-quoted strings. (JSON5 is work in progress.)\n* Offers both condensed and prettified [JSON] output.\n\nUses [prantlf.json].\n\n## Synopsis\n\nCheck the syntax of a file `config.json`, append a trailing line break to the JSON output, make the output more readable by indentation and overwrite the original file with the formatted output:\n\n    jsonlint config.json -lpw\n\nCheck a file read from standard input and print it formatted to standard output, as condensed as possible, no trailing line break:\n\n    cat config.yaml | jsonlint \u003e config.json\n\n## Usage\n\n    jsonlint [options] [\u003cfile\u003e ...]\n\n      \u003cfile\u003e                read the JSON/JSONC/JSON5 input from a file\n\n    Options:\n      -o|--output \u003cfile\u003e    write the JSON output to a file\n      -m|--mode \u003cmode\u003e      parse in the mode \"json\", \"jsonc\", or \"json5\"\n      -w|--overwrite        overwrite the input file with the formatted output\n      -k|--check            check the syntax only, no output\n      -a|--compact          print error messages on a single line\n      -t|--trailing-commas  insert trailing commas to arrays and objects\n      -s|--single-quotes    format single-quoted instead of double-quoted strings\n      --escape-slashes      escape slashes by by prefixing them with a backslash\n      --escape-unicode      escape multibyte Unicode characters with \\u literals\n      -l|--line-break       append a line break to the JSON output\n      -p|--pretty           print the JSON output with line breaks and indented\n      -V|--version          print the version of the executable and exit\n      -h|--help             print the usage information and exit\n\n    If no input file is specified, it will be read from standard input.\n    If multiple files are specified and file overwriting is not enabled,\n    the files will be only checked and their names printed out.\n\n## Errors\n\nThe error output is based on the [error messages] provided by [prantlf.json]:\n\n    ❯ jsonlint .vscode/launch.json\n\n    .vscode/launch.json:3:3: Expected '\"' but got \"/\" when parsing an object key:\n    2 | {\n    3 |   // Use IntelliSense …\n      |   ^\n\nCompact output when checking many files:\n\n    ❯ v run jsonlint.v .vscode/*.json -a\n\n    .vscode/launch.json:3:3: Expected '\"' but got \"/\" when parsing an object key\n    .vscode/settings.json: OK\n    .vscode/tasks.json:3:3: Expected '\"' but got \"/\" when parsing an object key\n\nFixing the errors by enabling [JSONC]:\n\n    ❯ jsonlint .vscode/*.json -m jsonc\n\n    .vscode/launch.json: OK\n    .vscode/settings.json: OK\n    .vscode/tasks.json: OK\n\n## Contributing\n\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Lint and test your code.\n\n## License\n\nCopyright (c) 2023-2025 Ferdinand Prantl\n\nLicensed under the MIT license.\n\n[prantlf.json]: https://github.com/prantlf/v-json\n[JSON]: https://www.json.org/\n[JSONC]: https://changelog.com/news/jsonc-is-a-superset-of-json-which-supports-comments-6LwR\n[JSON5]: https://spec.json5.org/\n[fast]: https://github.com/prantlf/v-json#performance\n[error messages]: https://github.com/prantlf/v-json#errors\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprantlf%2Fv-jsonlint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprantlf%2Fv-jsonlint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprantlf%2Fv-jsonlint/lists"}