Bonjour,
j'ai un petit problème que je n'arrive pas à résoudre malgré plusieurs heures de recherche et de tests.
Je développe actuellement une plateforme web interrogeant des APIs. Pour résumer vite fait, j'interroge, je récupère un JSON que je parse pour placer les données intéressantes dans des objets de type "Source" puis je sérialise mon tableau d'objets pour envoyer ce Json à mon logiciel. Bref, c'est un peu complexe mais cela marchait pas mal jusqu'à ce que je doive rajouter les prix min et max dans mes objets. En gros, je me balade dans mon JSON, je regarde toutes les offres, je cherche ma devise (ici "EUR") et je récupère mes prix. Mais je ne récupère pas le bon truc.
Voici un bout de mon JSON que je recupère:
Voici un bout de mon code: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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 "offers": [ { "in_stock_quantity": 0, "prices": { "DKK": [ [ 3000, "0.71900" ], [ 6000, "0.65000" ], [ 9000, "0.55700" ] ], "EUR": [ [ 3000, "0.09600" ], [ 6000, "0.08700" ], [ 9000, "0.07400" ] ], "GBP": [ [ 3000, "0.06200" ], [ 6000, "0.05600" ], [ 9000, "0.04800" ] ], "NOK": [ [ 3000, "0.80600" ], [ 6000, "0.72800" ], [ 9000, "0.62400" ] ] },
Le souci est que quand j'ai ceci en JSON, par exemple: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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 //LES PRIX + LES STOCKS // On récupère le tableau d'objets spécifique à l'entrée "offets" JSONArray offers = new JSONArray(objItems.getString("offers")); for (int k = 0; k < offers.length(); k++) { //on crée un objet de chaque "offers" JSONObject objOffers = new JSONObject(offers.getString(k)); //LES STOCKS quantite += objOffers.getInt("in_stock_quantity"); //LES PRIX //on crée un objet de chaque "prices" JSONObject objPrices = new JSONObject(objOffers.getString("prices")); try { // On récupère le tableau d'objets spécifique à l'entrée "offets" JSONArray devi = new JSONArray(objPrices.getString(devise)); for (int l = 0; l< devi.length(); l++) { // On récupère le tableau d'objets spécifique à l'entrée "offets" JSONArray prix = new JSONArray(devi.getString(l)); for (int m = 0; m< prix.length(); m++) { //ramene seulement le premier chiffre du tableau prixMax = Math.max(prix.getInt(m), prixMax); prixMin = Math.min(prix.getInt(m), prixMin); //donne 2 ou rien //prixMax = prix.length(); } } } catch (JSONException e){ } } produit.setPrixMin(prixMin); produit.setPrixMax(prixMax);
Je récupère 9000 alors que j'aimerais récupérer "0.62400". Mais sans nom (format typique des Json: {nom:valeur}), je galère un peu.Code:
1
2
3
4
5 [ 9000, "0.62400" ]
Donc si une âme charitable et ayant les connaissances pour m'aider passe par là, je lui serais reconnaissante de faire partager son savoir :D
Merci d'avance!