Je veux afficher le "titre" de l'API (http://jsonplaceholder.typicode.com/posts) à l'aide Retrofit 2 et Gson (ou GsonFormat, je ne suis pas vraiment sûr), je
ai créé les classes suivantes,
Modal.javaComment analyser la réponse Retrofit 2 à l'affichage des données?
package arpit.retrodemo;
public class Modal {
private String title;
public String getTitle(){
return title;
}
}
interface APIService,
package arpit.retrodemo;
import java.util.List;
import retrofit.Call;
import retrofit.http.GET;
public interface APIService {
@GET("/posts")
Call<List<Modal>> getDetails();
}
MainActivity.java
package arpit.retrodemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.util.List;
import retrofit.Call;
import retrofit.Callback;
import retrofit.GsonConverterFactory;
import retrofit.Response;
import retrofit.Retrofit;
public class MainActivity extends AppCompatActivity {
private static final String ENDPOINT = "http://jsonplaceholder.typicode.com";
private APIService service;
private static List<Modal> users;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(ENDPOINT)
.build();
service = retrofit.create(APIService.class);
Call<List<Modal>> userList = service.getDetails();
userList.enqueue(new Callback<List<Modal>>() {
@Override
public void onResponse(Response<List<Modal>> response) {
if(response.isSuccess()){
Log.d("find", "response.isSuccess");
// to parse the API reponse(in JSON) to display, say, "title" from the API response
}
}
@Override
public void onFailure(Throwable t) {
Log.d("findError", t.getMessage());
}
});
}
}
format JSON
[
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
},
{
"userId": 1,
"id": 2,
"title": "qui est esse",
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
},
{
"userId": 1,
"id": 3,
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
"body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
}
]
donc je reçois la réponse de l'API dans la méthode onResponse mais
Comment puis-je stocker chaque titre dans un objet de classe Modal.java et une liste « utilisateurs » contiendra tous les objets de Modal.java afin que je puisse plus tard afficher les titres en utilisant l'Iterator sur la liste "users".
http://stackoverflow.com/questions/34621240/parse-a-nested-json-with-retrofit-2-0/34621436#34621436 – Amir
Vous pourriez recevoir la liste de la classe modale dans votre méthode de onResponse à l'intérieur de response.body(). Pouvez-vous vérifier, mais vous obtenez dans votre response.body()? –
Il y a une correction requise dans votre Json, ce n'est pas standard selon les commentaires ci-dessus. – VVB