code: public static Feature fromJson(@NonNull String json) {
  
      GsonBuilder gson = new GsonBuilder();
      gson.registerTypeAdapterFactory(GeoJsonAdapterFactory.create());
      gson.registerTypeAdapterFactory(GeometryAdapterFactory.create());
  
      Feature feature = gson.create().fromJson(json, Feature.class);
  
      // Even thought properties are Nullable,
      // Feature object will be created with properties set to an empty object,
      // so that addProperties() would work
      if (feature.properties() != null) {
        return feature;
      }
      return new Feature(TYPE, feature.bbox(),
        feature.id(), feature.geometry(), new JsonObject());
    }
docs: Create a new instance of this class by passing in a formatted valid JSON String. If you are
  creating a Feature object from scratch it is better to use one of the other provided static
  factory methods such as {@link #fromGeometry(Geometry)}.
  
  @param json a formatted valid JSON string defining a GeoJson Feature
  @return a new instance of this class defined by the values passed inside this static factory
  method
  @since 1.0.0