1

我喜欢使用GSON反序列化以下 JSON 字符串。

{
  "type": "FeatureCollection",
  "features": [
    {
      "id": "FSROGD.4440181",
      "geometry": {
        "type": "Point",
        "coordinates": [
          16.7594706041998,
          43.148716514354945
        ]
      }
    }
  ]
}

我已经准备好名为ResponseFeaturesGeometryCoordinates的必要 Java 类。除了最后一节课,一切都很好。但是对于Coordinates,我不明白我应该写什么,因为没有可以准备作为成员变量的键。
这是父几何类...

package info.metadude.trees.model.vienna;    
import com.google.gson.annotations.SerializedName;

public class Geometry {     
    @SerializedName("type")
    public String type;

    // TODO: Prepare Coordinates class for GSON.
    // @SerializedName("coordinates")
    // public Coordinates coordinates;
}

...和空的坐标类。

package info.metadude.trees.model.vienna;    
public class Coordinates {
    // TODO: No idea what should be defined here.
}
4

1 回答 1

2

您可以coordinatesGeometry. 这会自动将值映射到正确的属性。

import java.util.List;

import com.google.gson.Gson;

public class GSonTest {

    public static void main(final String[] args) {
        Gson gson = new Gson();
        System.out.println(gson.fromJson("{        \"type\": \"Point\",        \"coordinates\": [          16.7594706041998,          43.148716514354945        ]      }", Geometry.class));
    }

    public static class Geometry {

        List<Float> coordinates;

        public List<Float> getCoordinates() {
            return coordinates;
        }

        public void setCoordinates(final List<Float> coordinates) {
            this.coordinates = coordinates;
        }

        @Override
        public String toString() {
            return "Geometry [coordinates=" + coordinates + "]";
        }

    }

}
于 2012-06-24T10:50:02.110 回答