commit | 2431afb27465e3663dbb545f1f46344367809649 | [log] [tgz] |
---|---|---|
author | Neil Fuller <nfuller@google.com> | Wed Aug 05 20:53:53 2020 +0100 |
committer | Neil Fuller <nfuller@google.com> | Wed Aug 05 20:53:53 2020 +0100 |
tree | 65054c253fdd75105b9ea0f26d5d55ca665f5c8a | |
parent | cfd5e8ffb76c3bc3cf83a69eee64deadb5672f2d [diff] | |
parent | b02f8a3a10c09fe673aaf3530ec640cb8e80bebb [diff] |
Merge tag 'upstream/upstream-geojson-jackson-1.14' [maven-release-plugin] copy for tag geojson-jackson-1.14 Initial import into Android of geojson-jackson-1.14 tag. Test: None Bug: 152747091 Change-Id: I3d1fdfbcb64700cb8f8ad4987c45801bec53130c
A small package of all GeoJson POJOs (Plain Old Java Objects) for serializing and deserializing of objects via JSON Jackson Parser.
If you know what kind of object you expect from a GeoJson file you can directly read it like this:
FeatureCollection featureCollection = new ObjectMapper().readValue(inputStream, FeatureCollection.class);
If you want to read any GeoJson file read the value as GeoJsonObject and then test for the contents via instanceOf:
GeoJsonObject object = new ObjectMapper().readValue(inputStream, GeoJsonObject.class); if (object instanceof Polygon) { ... } else if (object instanceof Feature) { ... }
and so on.
Or you can use the GeoJsonObjectVisitor to visit the right method:
GeoJsonObject object = new ObjectMapper().readValue(inputStream, GeoJsonObject.class); object.accept(visitor);
Writing Json is even easier. You just have to create the GeoJson objects and pass them to the Jackson ObjectMapper.
FeatureCollection featureCollection = new FeatureCollection(); featureCollection.add(new Feature()); String json= new ObjectMapper().writeValueAsString(featureCollection);
You can find the library in the Maven Central Repository.
<dependency> <groupId>de.grundid.opendatalab</groupId> <artifactId>geojson-jackson</artifactId> <version>1.8.1</version> </dependency>