[RESOLU] [JSON][Array] Problème affichage du json converti en array

Eléphanteau du PHP | 13 Messages

12 juin 2019, 17:57

Bonjour,

Je reviens vers vous car après avoir récupéré des données en json je fais un var_dump mais les information s'affiche en texte et pas sous forme d'array...

Voici mon code :
$response = json_decode(curl_exec($curls), TRUE);
var_dump($response);

J'aimerais obtenir quelque chose comme ça :
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}

or j'obtiens le texte en brut
{"data":[{"type":"flight-offer","id":"1560354549582-869444284","offerItems":[{"services":[{"segments":[{"flightSegment":{"departure":{"iataCode":"NTE","terminal":"3","at":"2019-07-06T22:15:00+02:00"},"arrival":{"iataCode":"BCN","terminal":"1","at":"2019-07-06T23:45:00+02:00"},"carrierCode":"VY","number":"2971","aircraft":{"code":"32A"},"operating":{"carrierCode":"VY","number":"2971"},"duration":"0DT1H30M"},"pricingDetailPerAdult":{"travelClass":"ECONOMY","fareClass":"Q","availability":9,"fareBasis":"QRTVYCON"}},{"flightSegment":{"departure":{"iataCode":"BCN","terminal":"1","at":"2019-07-07T06:40:00+02:00"},"arrival":{"iataCode":"LPA","at":"2019-07-07T09:10:00+01:00"},"carrierCode":"VY","number":"3006","aircraft":{"code":"320"},"operating":{"carrierCode":"VY","number":"3006"},"duration":"0DT3H30M"},"pricingDetailPerAdult":{"travelClass":"ECONOMY","fareClass":"Q","availability":9,"fareBasis":"QRTVYCON"}}]},{"segments":[{"flightSegment":{"departure":{"iataCode":"LPA","at":"2019-07-13T06:50:00+01:00"},"arrival":{"iataCode":"NTE","terminal":"3","at":"2019-07-13T11:20:00+02:00"},"carrierCode":"VY","number":"3186","aircraft":{"code":"321"},"operating":{"carrierCode":"VY","number":"3186"},"duration":"0DT3H30M"},"pricingDetailPerAdult":{"travelClass":"ECONOMY","fareClass":"Q","availability":9,"fareBasis":"QRTVY"}}]}],"price":{"total":"191.59","totalTaxes":"64.59"},"pricePerAdult":{"total":"191.59","totalTaxes":"64.59"}}]}],"dictionaries":{"carriers":{"VY":"VUELING AIRLINES"},"currencies":{"EUR":"EURO"},"aircraft":{"320":"AIRBUS INDUSTRIE A320-100/200","321":"AIRBUS INDUSTRIE A321","32A":"AIRBUS INDUSTRIE A320 SHARKLETS"},"locations":{"BCN":{"subType":"AIRPORT","detailedName":"AIRPORT"},"LPA":{"subType":"AIRPORT","detailedName":"GRAN CANARIA"},"NTE":{"subType":"AIRPORT","detailedName":"ATLANTIQUE"}}},"meta":{"links":{"self":"https://test.api.amadeus.com/v1/shoppin ... "adults":1}}}
Est-ce à cause de la longueur du json ? Cela me posera t-il problème pour utiliser les informations contenus ?

Ps: j'ai essayer d'encoder un array en Json puis d'utiliser json_decode et var_dump et aucun soucis ça s'affiche correctement

Merci d'avance pour votre aide :)

Avatar du membre
Mammouth du PHP | 874 Messages

12 juin 2019, 18:16

Salut, c'est pas logique. As-tu mis l'option CURLOPT_RETURNTRANSFER à true ? sinon je pense que tu vois la réponse brut du serveur qui s'affiche automatiquement dans la page et que le var_dump est en dessous et vide peut être.
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^

Eléphanteau du PHP | 13 Messages

12 juin 2019, 18:23

Effectivement le var_dump est vide et cela s'affiche sans que je le demande, merci j'avais bien oublié l'option CURLOPT_RETURNTRANSFER...
Je crois que je vais aller faire un tour sur la doc pour cURL car je le maîtrise pas du tout ^^

Eléphanteau du PHP | 13 Messages

12 juin 2019, 18:26

Par contre y a t-il une option pour voir tout le var_dump ? Le json étant un peu long il met met trois petit point

Avatar du membre
Mammouth du PHP | 874 Messages

12 juin 2019, 18:29

A priori pas d'option sur le var_dump, tu peux essayer avec le print_r.

EDIT : si tu as xdebug d'installé j'ai trouvé ça https://stackoverflow.com/questions/999 ... ject-array
; with sane limits
xdebug.var_display_max_depth = 10
xdebug.var_display_max_children = 256
xdebug.var_display_max_data = 1024 


; with no limits
; (maximum nesting is 1023)
xdebug.var_display_max_depth = -1 
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1 
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^

Eléphanteau du PHP | 13 Messages

12 juin 2019, 18:34

Je l'ai pas d'installer mais je pense que je vais le faire ! Merci pour ton aide.

Edit: Xdebug fonctionne parfaitement, je vois toute la structure de ma réponse.