androidjsonjsonexception

How to show the multiple markers on maps


Can anyone explain how to show multiple markers on google maps in android using the following JSON code?

[
 {"id":"1","lat":"18.105917","lng":"78.838325","location":" Laxmi Filling Station( Medak Road)","distance":"0"},
 {"id":"3","lat":"18.105952","lng":"78.840366","location":"Fathima Filling Station (Medak Road)","distance":"0.1340667689594937"},
 {"id":"13","lat":"18.093713","lng":"78.843775","location":"Thirumala Thirupathi Filling Station (Ensanpally Road)","distance":"0.9160924683870764"},
 {"id":"12","lat":"18.101497","lng":"78.852353","location":"MS Balaji Filling Station ( Old Busstand)","distance":"0.9706182480093937"}
]

All the errors are solved still marker's is not showing on map

private void createMarkersFromJson(String json) throws JSONException {

// De-serialize the JSON string into an array of city objects
JSONArray jsonArray = new JSONArray(json);
for (int i = 0; i < jsonArray.length(); i++) {
    // Create a marker for each city in the JSON data.
    JSONObject jsonObj = jsonArray.getJSONObject(i);
    String location=jsonObj.getString("location");
    double lat=jsonObj.getDouble("lat");
    double lng=jsonObj.getDouble("lng");
    String id=jsonObj.getString("id");
    Log.e("detailes", lat+" "+lng+" "+location);
    map.addMarker(new MarkerOptions()
            .title(location)
            .snippet(id)
            .position(new LatLng(lat, lng))
    );
}
}

Solution

  • population key is not present in the json string

     private void createMarkersFromJson(String json) throws JSONException {
    // De-serialize the JSON string into an array of city objects
            JSONArray jsonArray = new JSONArray(json);
            for (int i = 0; i < jsonArray.length(); i++) {
    // Create a marker for each city in the JSON data.
                JSONObject jsonObj = jsonArray.getJSONObject(i);
                map.addMarker(new MarkerOptions()
                        .title(jsonObj.getString("name"))
                        .snippet(jsonObj.getString("location"))
                        .position(new LatLng(
                                jsonObj.getDouble("lat"),
                                jsonObj.getDouble("lng")
                        ))
                );
            }
        }