Activity Forums Salesforce® Discussions What is the best way to parse the JSON response that comes from google map?

  • What is the best way to parse the JSON response that comes from google map?

    Posted by sushant on February 6, 2017 at 1:20 pm

    Hi All,

    What is the best way to parse the JSON response that comes from google map?

    JSON Response:

    up vote1down votefavorite
    I've written something that will get the longitude and latitude from a Google Geocode Callout.

    The response we get from a generic callout looks like this:

    {
    results=( {
    address_components=( {
    long_name=1600,
    short_name=1600,
    types=(street_number
    )
    },
    {
    long_name=Amphitheatre Parkway,
    short_name=Amphitheatre Pkwy,
    types=(route)
    },
    {
    long_name=Mountain View,
    short_name=Mountain View,
    types=(locality,
    political)
    },
    {
    long_name=Santa Clara County,
    short_name=Santa Clara County,
    types=(administrative_area_level_2,
    political)
    },
    {
    long_name=California,
    short_name=CA,
    types=(administrative_area_level_1,
    political)
    },
    {
    long_name=United States,
    short_name=US,
    types=(country,
    political)
    },
    {
    long_name=94043,
    short_name=94043,
    types=(postal_code)
    } ),
    formatted_address=1600 Amphitheatre Pkwy,
    Mountain View,
    CA 94043,
    USA,
    geometry= {
    location= {
    lat=37.4223582,
    lng=-122.0844464
    },
    location_type=ROOFTOP,
    viewport= {
    northeast= {
    lat=37.4237071802915,
    lng=-122.0830974197085
    },
    southwest= {
    lat=37.4210092197085,
    lng=-122.0857953802915
    }
    }
    },
    place_id=ChIJ2eUgeAK6j4ARbn5u_wAGqWA,
    types=(street_address)
    } ),
    status=OK
    }

    Thanks

    Vikas Kumar replied 7 years, 9 months ago 2 Members · 1 Reply
  • 1 Reply
  • Vikas Kumar

    Member
    February 8, 2017 at 12:28 pm

    Hi Sushant,

    Just deserialize:

    public class Response { final Geometry geometry; }
    public class Geometry { final Location location; }
    public class Location { final Decimal latitude, longitude; }
    Granted, your JSON payload is not valid as currently specified. The above would work though if your structure boils down to:

    {
    "geometry": {
    "location": {
    "latitude": 0.0,
    "longitude": 0.0
    }
    },
    "other_properties": { /*values*/ }
    }

     

Log In to reply.

Popular Salesforce Blogs

Popular Salesforce Videos