A spiritual successor to geojsonhint, which is no longer maintained.
check-geojson is a parser and validator for GeoJSON strings. It is tailored to the use cases of validating user-generated GeoJSON content, or troubleshooting GeoJSON that you've received.
Note: the API is not yet stable.
- Actively maintained
- Written in TypeScript and includes types
- Uses momoa to parse JSON instead of a homemade parser. This is probably the biggest one. jsonlint-lines was a hack, which I created because I could not find a single parser that actually parsed JSON and gave line numbers for values. momoa is much better than that hack, and using it makes line-level errors much cleaner.
Unlike geojsonhint, this checker only produces errors, not warnings. So things that geojsonhint would warn about, like:
- excessive coordinate precision
- right-hand rule compliance
This does not check for. Additionally, the crs
member is ignored by this tool: as of
the latest GeoJSON specification, this is not used.
We're using the same test fixtures as geojsonhint as a starter.
pnpm add @placemarkio/check-geojson
yarn add @placemarkio/check-geojson
import { check } from "@placemarkio/check-geojson"
let geojsonObject;
try {
geojsonObject = check('… geojson string …')
} catch (e) {
/// e.issues
}
If your GeoJSON is already an object, you will need to convert it to a string first. geojson-check will re-parse it. You should consider the performance penalty of this.
const issues = getIssues(JSON.stringify(geojsonObject));
if (issues.length > 0) {
// ...
}