Bonjour,
J'ai une hashmap<Utilisateur,Boolean> que je parse en json avec la librairie Jackson mais quand je la parse j'obtient ça :
Est-ce normal ? parce que du coup je n'arrive pas à récupérer l'email de l'utilisateur en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part {"utilisateur -> mail :mon.mail@gmail.com ; nom : lenom; prenom : leprenom; pseudo : maxou ; avatar : IMAGE ; sexe : 0 ; naissance : 1992-04-15":true}
Voici ma servlet qui envoie le json au client:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for(var key in liste){ var value = liste[key]; alert(key.mail +" = " +value); }
et le manager qui construit la hashmap :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public void service( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException { res.setCharacterEncoding("UTF-8"); res.setContentType("application/json"); PrintWriter out = res.getWriter(); UtilisateurManager mu = new UtilisateurManager(); ObjectMapper mapper = new ObjectMapper(); String repJson = mapper.writeValueAsString(mu.getContactsByUser(req.getParameter("search"),"mail@gmail.com")); out.print(repJson); }
Merci,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
30
31 public HashMap<Utilisateur,Boolean> getContactsByUser(String pseudo, String currentUser){ try (Connection con = Connexion.getConnection()){ HashMap<Utilisateur,Boolean> contacts = new HashMap<Utilisateur,Boolean>(); String requete = "SELECT * FROM utilisateur WHERE pseudo_user LIKE ?"; PreparedStatement stmt1 = con.prepareStatement(requete); stmt1.setString(1, pseudo+"%"); ResultSet rs = stmt1.executeQuery(); Utilisateur contact; String requete2 = "SELECT * FROM contact WHERE user1=? AND user2=? OR user1=? AND user2=?"; ResultSet rs2; PreparedStatement stmt2; while(rs.next()){ contact = new Utilisateur(rs.getString("mail_user"),rs.getString("pseudo_user"),rs.getString("nom_user"),rs.getString("prenom_user"),rs.getString("img_user"),rs.getInt("sexe_user"),rs.getDate("naiss_user")); stmt2 = con.prepareStatement(requete2); stmt2.setString(1, currentUser); stmt2.setString(2, rs.getString("mail_user")); stmt2.setString(3, rs.getString("mail_user")); stmt2.setString(4, currentUser); rs2 = stmt2.executeQuery(); if(rs2.next()){ contacts.put(contact,true); }else{ contacts.put(contact,false); } } return contacts; } catch (SQLException | NamingException e) { e.printStackTrace(); } return null; }
Cordialement.
Partager