Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai un souci avec le Json.
Je vais commencer par expliquer ma config déjà.
Je tourne sous apache, avec PHP 5.2 (Json / curl bien activé).
Je récupère via un webservice une chaine json.
Je me suis permis de vérifier que celle-ci était valide via un validateur sur le web.
Le problème est que cette chaine contient 155 lignes.
Or, de ce que j'ai compris, json_decode (qui est utilise par Zend_Json si elle existe) ne gère pas une profondeur de plus de 128.
Je me demandais donc si il y avait moyen d'augmenter cette valeur, ou si il y avait moyen de la contourner.
J'ai vu que sur PHP 5.3, la valeur était passé de 128 à 512 pour la profondeur, mais vu qu'il s'agit d'un projet professionel, je n'ai pas tellement envi de mettre une version de PHP en développement.
Voila, j'espère que vous serez en mesure de m'aider.
Cordialement.
Dernière modification par Wiinner (22-04-2010 14:52:28)
Hors ligne
PHP 5.3 en développement ???
Hors ligne
euh bah j'avais lu çà quelques part :p
Après, il est pas dans les paquets de Ubuntu, donc je pensais que c'était pour çà.
Je vais me renseigner un peu plus là dessus alors :p
Hors ligne
Bon, j'ai mis PHP 5.3.2, mais çà ne marche toujours pas.
Je vous fournis le bout de code qui peut vous intéresser eventuellement :
public function getUrl($url, Application_Model_Matieres $matieres) { $json = get_http($url); $mytab = json_decode($json, true); echo 'Last error = '.json_last_error().'<br/>'; echo '<br/>mytab = '.print_r($mytab).'<br/>'; return $mytab; }
json_last_error() me renvoie 0, et le print_r($mytab) me dis 1.
Et la chaine Json est la variable $json que j'ai fait validé par un validateur json en ligne.
Voila
Hors ligne
Bon, j'ai réussi à trouver la solution.
Apparemment, bien que ma chaine de caractère JSON ait passé le validateur en ligne, celle-ci n'était pas correctement encodé en UTF-8.
J'ai donc du rajouté :
$json = utf8_encode($json);
Voila
Hors ligne