2016-06-30 6 views
0

ich Fehler habe, während ein Json mit Gson Parsen in ein Objekt. Was ich versuche zu tun ist die Längengrad in der Doppel Variable zu speichern, aber während der Analyse, erhalte ich einen Fehler. Ich versuche, die Klassenvariablen und die gson zu Zeichenfolge ändern, aber immer noch den gleichen Fehler. Der Json ist auf Github.Gson JsonSyntaxException: java.lang.NumberFormatException

Der Fehler, die ich bekommen ist:

com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 32.93644801 at line 7 column 22 path $.bars[0].lat 

json Daten:

{ 
    "bars":[ 
     { 
      "name": "Antares Pichincha", 
      "place_id": "ChIJOR29Pk-rt5UR0hsdFVQWpD8", 
      "logo_src": "antares", 
      "lat": -32.936448000001, 
      "lng": -60.6587110 
     } 
    ] 
} 

und die Klasse die Daten

public class BarList { 

    //@SerializedName("bars") 
    List<Bar> bars; 

    public List<Bar> getBars(){ 
     return bars; 
    } 
} 

public class Bar { 

    private String name; 
    private String place_id; 
    private String logo_src; 
    private double lat; 
    private double lng; 

    public Bar(String name, String place_id, String logo_src, double lat, double lng) { 
     this.name = name; 
     this.place_id = place_id; 
     this.logo_src = logo_src; 
     this.lat = lat; 
     this.lng = lng; 
    } 

reciving und hier ist, wo ich es nennen

GsonRequest<BarList> request = new GsonRequest<BarList>(
       JSON_URL, 
       BarList.class, 
       null, 
       new Response.Listener<BarList>() { 
        @Override 
        public void onResponse(BarList response) { 
         barList = response; 
         SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
           .findFragmentById(R.id.map); 
         mapFragment.getMapAsync(MapsActivity.this); 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Log.d(TAG, "Error Respuesta en JSON: " + error.getMessage()); 
        } 
       } 
     ); 

Jemand hat eine Idee, wie kann ich das lösen?

+0

könnten Sie zeigen, wo greifen Sie auf diese 'Bar.lat'? Wo konvertieren Sie zu gson? –

+1

versuchen, Wert als Zeichenfolge und dann konvertieren Sie es in doppelte, wenn Sie es verwenden möchten –

+3

Zeige mehr Code, der Ort, an dem der Fehler besonders auftritt ... – Vucko

Antwort

0

Nicht sicher, ob das Ihr Problem ist, aber Ihre Bars-Array enthält nur ein einzelnes Element, aber in Zeile 9 ist ein Komma, das von einem anderen Element gefolgt werden sollte.

+0

Ich habe es versucht, es ist nur ein leeres Listenelement dann erstellen. –

+0

Ja sorry, kopieren Sie einfach Tannen Elemente des JSON als Beispiel zu zeigen – Ishidad

0

Ich frage einen Entwickler Freund, um einen Blick auf den Code und er konnte keine Probleme oder Fehler auf den Code finden, so sagte er mir, die installierte App auf dem Gerät zu löschen und das Projekt und das neu zu bauen das Problem lösen.

Vielen Dank für die Antworten.