Je veux envoyer un ArrayList de type objet(TrackArtiste) de ma servlet à mon code ajax en utilisant la notation Gson:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| PrintWriter out = response.getWriter();
UserBean user = new UserBean();
user.setUserName(request.getParameter("user"));
user.setPassword(request.getParameter("pwd"));
Gson gson = new Gson();
JsonObject myObj = new JsonObject();
//myObj.addProperty("user", "appachito");
//TrackArtiste ta=new TrackArtiste("001","track","artiste","artisteLastFm",3,"","");
ArrayList<TrackArtiste> maListe=new ArrayList<TrackArtiste>();
TrackArtiste ta=new TrackArtiste();
ta.setCodeVerse("_0");
ta.setTrack("track");
ta.setArtiste("artiste");
ta.setPlayCount("123");
maListe.add(ta);
ta=new TrackArtiste();
ta.setCodeVerse("_0");
ta.setTrack("track1");
ta.setArtiste("artiste1");
ta.setPlayCount("40");
maListe.add(ta);
//JsonElement liste = gson.toJsonTree(maListe);
JsonElement element = gson.toJsonTree(maListe, new TypeToken<List<TrackArtiste>>() {}.getType());
JsonArray jsonArray = element.getAsJsonArray();
myObj.add("liste",jsonArray);
out.println(myObj.toString());
System.out.println(myObj); |
Ma servlet construit bien mon arrayList et le coder en Gson, et voici le contenu de la console:
{"liste":[{"track":"track","artiste":"artiste","codeVerse":"_0","playCount":"123"},{"track":"track1","artiste":"artiste1","codeVerse":"_0","playCount":"40"}]}
Dans ajax, je vais exploiter mon arraList<TrackArtiste> pour construire des liens(balises a), du coup j'ai fais:
1 2 3 4 5 6 7
| success: function(data){
$("#playlist").html("");
$.each(data, function(indice){
$("#playlist").append("<a rel='0' id='"+data.liste.codeVerse+"'>"+data.liste.track+":"+data.liste.artiste+"</a>");
})
.......... |
Soucis1: Mon ArrayList est composé de deux objets, alors que j'ai un seul lien au lien de deux.(comme si la boucle ne fonctionne pas parfaitement
soucis2:au lien d'avoir le contenu des attribut de mon objet, j'ai des indefined
Merci d'avance
Partager