2016-05-07 21 views
0

Ich warJSonArray zu String für mit Gson Parsen

ein JSonArray diese Methode geben für das Parsen
private List<User> parseUserList(String jsonArray) { 
    Gson gson = new Gson(); 
    // Declares the list type 
    Type listType = new TypeToken<List<User>>() {}.getType(); 
    List<User> userList = gson.fromJson(jsonArray, listType); 
    return userList; 
} 

Ich erhalte und einen Fehler auf der Linie, wo ich diese Methode aufrufen. Ist es falsch die toString() Methode dort aufzurufen?

JsonArrayRequest jsonArray = new JsonArrayRequest(
      Request.Method.GET, 
      USERS_URL, 
      null, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 
        List<User> list = parseUserList(response.toString()); 
       } 
      }, 
      new Response.ErrorListener() {...} 
      } 
    ) 

Auch dies ist ein suboptimaler Weise eine JSonArray in eine Liste zu machen?

+0

können Sie mir sagen, was ist der Inhalt dieser :: response.toString() –

+0

Antwort ist die JSonArray wir abgerufen. Ich versuche, es in eine Zeichenfolge umzuwandeln, damit ich die parseUserList-Methode aufrufen kann. –

Antwort

0

Wenn die Json Array in der Antwort empfangen wird, korrekt ist,

dann gäbe es keinen Fehler bei toString sein, um die entsprechenden json zu erhalten.

Ich würde sagen, überprüfen Sie bitte das JSON-Objekt, das Sie in der JSON-Array erhalten, entspricht POJO für die Benutzerklasse.

hoffe, das hilft !!

+0

Ich denke, ich habe es behoben. Was falsch war (falls jemand anders vorbeikommt) ist, dass die Parameter für den JsonArrayRequest nur drei sind: - Ein String mit der URL oder was auch immer Sie erhalten die Informationen, den Response Listener und den ErrorResponse Listener. Die anderen zwei Parameter sollten nicht da sein. –