code: @JsonCreator
      public static GeoDistance create(String json) {
          try {
              for (GeoDistanceUnit geoDistanceUnit : GeoDistanceUnit.values()) {
                  for (String name : geoDistanceUnit.getNames()) {
                      if (json.endsWith(name)) {
                          double value = Double.parseDouble(json.substring(0, json.indexOf(name)));
                          return new GeoDistance(value, geoDistanceUnit);
                      }
                  }
              }
              double value = Double.parseDouble(json);
              return new GeoDistance(value, GeoDistanceUnit.METRES);
          } catch (Exception e) {
              e.printStackTrace();
              throw new IllegalArgumentException("Unparseable distance: " + json);
          }
      }
docs: Returns the {@link GeoDistance} represented by the specified JSON {@code String}.
  
  @param json A {@code String} containing a JSON encoded {@link GeoDistance}.
  @return The {@link GeoDistance} represented by the specified JSON {@code String}.