affiche nous le JSON que tu produis car on ne sait pas comment est fait ton objet JS Data
le resultat de alert(data) semble indiqué que data est un objet et pas un tableau
donc data[0] n'existe pas
A+JYT
Version imprimable
affiche nous le JSON que tu produis car on ne sait pas comment est fait ton objet JS Data
le resultat de alert(data) semble indiqué que data est un objet et pas un tableau
donc data[0] n'existe pas
A+JYT
avant de parser mets ton data dans un innerHTML de ta page ...
tu verras ce que reçoit javascript comme chaine et tu pourras constater si elles est bien formatée...
Alors voici le JSON que je produis :
{"dataForTree":[[["business1",null],[null,null]],[[null,null],[null,"service1"]]]}
J'ai affiché avant de parser dans une div. J'obtiens cela :
{"dataForTree":[[["business1",null],[null,null]],[[null,null],[null,"service1"]]]}
D'avance merci pour votre aide ;-)
s'il a peu le parser avec http://json.parser.online.fr/ c'est que la JSON est correct
mais ce n'est peut être pas un tableau mais un objet qui contient un membre qui lui est le tableau
donc tant qu'on ne sais pas quel est le contenu on ne peut pas dire comment est construit l'objet js
A+JYT
c'est donc bien un objet
{"dataForTree":[[["business1",null],[null,null]],[[null,null],[null,"service1"]]]}
cela va te donner un objet data avec un membre dataForTree
tu peux faireA+JYTCode:
1
2 alert(data.dataForTree[0][0][0]); alert(data.dataForTree[1][1][1]);
Voici le contenu :
Code:
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 String[][][] dataForTree = new String[2][2][2]; dataForTree[0][0][0] = "business1"; dataForTree[1][1][1] = "service1"; org.json.JSONObject dataObject; dataObject = new org.json.JSONObject(dataForTree); // dataForTree est mon tableau de String String dataJSON = dataObject.toString(); String myString = ""; try { myString = new org.json.JSONObject().put("dataForTree", dataForTree).toString(); System.out.println(myString); }catch(org.json.JSONException e) { System.out.println(e.toString()); } String resourceID = resourceRequest.getResourceID(); if(resourceID.equals("tempo")) { PrintWriter writer = resourceResponse.getWriter(); writer.print(myString); }
on c'est croisé
avec ma réponse précédente tu devrais pouvoir t'en sortir
je te conseille d'ajouter quelques éléments à ton JSON
ainsi ton json seraCode:
1
2
3
4
5
6
7
8
9
10
11 String myString = ""; try { myString = new org.json.JSONObject().put("dataForTree", dataForTree) .put("success", true) .toString(); System.out.println(myString); }catch(org.json.JSONException e) { System.out.println("{ \"success\":false, \"error\":\"".concat(e.toString()).concat("\"}")); }
{"dataForTree":[[["business1",null],[null,null]],[[null,null],[null,"service1"]]], "success":true} s'il n'y a pas d'erreur
et {"success":false, "error":"le message de l'exception"}
du coup dans ton javascript
tu peux tester le résultatA+JYTCode:
1
2
3
4
5
6 if (data.success) { alert(data.dataForTree[0][0][0]); alert(data.dataForTree[1][1][1]); } else { alert(data.error); }
sekaijin je te remercie beaucoup. Ca fonctionne parfaitement. :ccool:
Je remercie également les participants de ce Topic pour m'avoir aidé.
Salutations
Nicolas