GeoJSON linters available in geojsonlint
geojson_lint()
geojson_hint()
- currently using geojsonhint
v1.2.1
geojson_validate()
All three functions return the same outputs. If the GeoJSON is valid, they return TRUE
. If the GeoJSON is invalid, they return FALSE
, plus reason(s) that the GeoJSON is invalid in an attribute named errors as a data.frame. The fields in the data.frame's are not the same across functions unfortunately, but they can be easily coerced to combine via e.g., plyr::rbind.fill
or dplyr::bind_rows
or data.table::rbindlist(fill = TRUE)
The parameters for the three functions are similar, though geojson_validate()
has an extra parameter greedy
that's not available in the others, and geojson_hint()
has ...
parameter to pass on curl options as it works with a web service.
install.packages("devtools")
devtools::install_github("ropenscilabs/geojsonlint")
library("geojsonlint")
geojsonlint.com web service
geojson_lint(x = '{"type": "Point", "coordinates": [-100, 80]}')
#> [1] TRUE
geojsonhint JS library
geojson_hint(x = '{"type": "Point", "coordinates": [-100, 80]}')
#> [1] TRUE
is-my-json-valid JS library
geojson_validate(x = '{"type": "Point", "coordinates": [-100, 80]}')
#> [1] TRUE
geojsonlint.com web service
geojson_lint('{"type": "FooBar"}')
#> [1] FALSE
geojsonhint JS library
geojson_hint('{"type": "FooBar"}')
#> [1] FALSE
is-my-json-valid JS library
geojson_validate('{ "type": "FeatureCollection" }')
#> [1] FALSE
geojsonlint.com web service
geojson_lint('{"type": "FooBar"}', verbose = TRUE)
#> [1] FALSE
#> attr(,"errors")
#> message status
#> 1 "FooBar" is not a valid GeoJSON type. error
geojsonhint JS library
geojson_hint('{"type": "FooBar"}', verbose = TRUE)
#> [1] FALSE
#> attr(,"errors")
#> line message
#> 1 1 The type FooBar is unknown
is-my-json-valid JS library
geojson_validate('{ "type": "FeatureCollection" }', verbose = TRUE)
#> [1] FALSE
#> attr(,"errors")
#> field message
#> 1 data no (or more than one) schemas match
geojsonlint.com web service
geojson_lint('{"type": "FooBar"}', error = TRUE)
#> Error: invalid GeoJSON
#> - "FooBar" is not a valid GeoJSON type.
geojsonhint JS library
geojson_hint('{"type": "FooBar"}', error = TRUE)
#> Error: Line 1
#> - The type FooBar is unknown
is-my-json-valid JS library
geojson_validate('{ "type": "FeatureCollection" }', error = TRUE)
#> Error: 1 error validating json:
#> - data: no (or more than one) schemas match
geojsonlint
in R doing citation(package = 'geojsonlint')