I am trying to deserialize data from a JSON object using gson. I am having problems with 1) class design. 2) getting a null object from an internal list object.
Here is an example JSON object
{ "spatialReference" : { "wkid" : 102113 }, "candidates" : [ { "address" : "202 S Van Ness Ave, San Francisco, CA, 94110", "location" : { "x" : -13627444.2697, "y" : 4546249.2471000031 }, "score" : 85.969999999999999, "attributes" : { "Loc_name" : "US_RoofTop", "Score" : 85.969999999999999, "Match_addr" : "505 S Van Ness Ave, San Francisco, CA, 94110", "House" : "505", "Side" : "R", "PreDir" : "S", "PreType" : "", "StreetName" : "Van Ness", "SufType" : "Ave", "SufDir" : "", "City" : "San Francisco", "State" : "CA", "ZIP" : "94110", "X" : -122.417416, "Y" : 37.764772999999998, "Disp_Lon" : -122.416991, "Disp_Lat" : 37.764809999999997, "Addr_type" : "StreetAddress", "Province" : "", "Postal" : "", "FromAddr" : "", "ToAddr" : "", "ZIP4" : "", "ZIP4_TYPE" : "", "User_fld" : "", "Ldu" : "", "xmin" : 0, "xmax" : 0, "ymin" : 0, "ymax" : 0 } }, { "address" : "505 Van Ness Ave, San Francisco, CA, 94102", "location" : { "x" : -13627778.172800001, "y" : 4548412.0926000029 }, "score" : 100, "attributes" : { "Loc_name" : "US_Streets", "Score" : 100, "Match_addr" : "505 Van Ness Ave, San Francisco, CA, 94102", "House" : "", "Side" : "L", "PreDir" : "", "PreType" : "", "StreetName" : "Van Ness", "SufType" : "Ave", "SufDir" : "", "City" : "San Francisco", "State" : "CA", "ZIP" : "94102", "X" : -122.42041500000001, "Y" : 37.780130999999997, "Disp_Lon" : 0, "Disp_Lat" : 0, "Addr_type" : "StreetAddress", "Province" : "", "Postal" : "", "FromAddr" : "501", "ToAddr" : "525", "ZIP4" : "", "ZIP4_TYPE" : "", "User_fld" : "", "Ldu" : "", "xmin" : 0, "xmax" : 0, "ymin" : 0, "ymax" : 0 } }]
Here is an example of class i made for a json object to use with gson using java
public class Response { public Response() {} SpatialReference spatial; public List<Candidates> candidate; public class Candidates { public Candidates() {} @SerializedName("address") public String address; Location location; @SerializedName("score") public double score; Attribute attributes; Double getScore() { return score; } } public class Attribute { public Attribute() {} @SerializedName("Disp_Lon") public double dispLong; @SerializedName("Disp_Lat") public double dispLat; } public class Location { public Location() {} @SerializedName("x") public double x; @SerializedName("y") public double y; } public class SpatialReference { SpatialReference() {} @SerializedName("wkid") public String wkid; } }
Here is sample code using gson
Gson gson= new Gson() response1= gson.fromJson(reader, Response.class); return response1;
Any help would be appreciated, and I'm very new to GSON and getting JSON objects. Thank you very much