Kommunauty
Connexion
Inscription

JSON.parse


ledisciple Messages : 2

Bonjour

Je suis désespéré, aucun autre forum, n'a réussi à répondre à mon problème

j'ai ceci :

$filename = "../sallesDesMachines/plan.inc.php";
if (file_exists($filename)) include($filename);
if(isset($_GET["NumeroRencontre"])){
$NumeroRencontre =trim(strip_tags(htmlentities($_GET["NumeroRencontre"])));
if(ctype_digit($NumeroRencontre) && strlen($NumeroRencontre)==8){
$ChercheRencontreParNumero->execute(array($NumeroRencontre));
$ligne = $ChercheRencontreParNumero->fetchAll(PDO::FETCH_ASSOC);
$NombreDeLignes=count($ligne);
var_dump($ligne);
if(!empty($ligne)){
echo json_encode($ligne);
}
}}

Résultat avec var_dump() :

array (size=1)
  0 =>
    array (size=21)
      'date' => string '2008-09-28' (length=10)
      'Stade' => null
      'Terrain' => null
      'Lieu' => string 'AVENUE DE PARIS' (length=15)
      'Ville' => string '79260 LA CRECHE' (length=15)
      'SaisieDistance' => string '13' (length=2)
      'equipelocalesaisie' => string 'La Crèche 2' (length=12)
      'equipevisiteusesaisie' => string 'St Maxire AV S 2' (length=16)
      'competition' => string '4ÈME DIVISION' (length=14)
      'choix_journee' => string '' (length=0)
      'choix_poste' => string 'Arbitre centre' (length=14)
      'NomArbitre' => null
      'NomAssistant1' => null
      'NomAssistant2' => null
      'ArbitreRemplacant' => null
      'NomDeleguePrincipal' => null
      'NomDelegueAjoint' => null
      'NomDelegueAccompagnateur' => null
      'ObservateurPrincipal' => null
      'ObservateurAdjoint1' => null
      'ObservateurAdjoint2' => null

avec echo

[{"date":"2008-09-28","Stade":null,"Terrain":null,"Lieu":"AVENUE DE PARIS","Ville":"79260 LA CRECHE","SaisieDistance":"13","equipelocalesaisie":"La Cr\u00e8che 2","equipevisiteusesaisie":"St Maxire AV S 2","competition":"4\u00c8ME DIVISION","choix_journee":"","choix_poste":"Arbitre centre","NomArbitre":null,"NomAssistant1":null,"NomAssistant2":null,"ArbitreRemplacant":null,"NomDeleguePrincipal":null,"NomDelegueAjoint":null,"NomDelegueAccompagnateur":null,[...]

Jusque là, il n'y a aucun problème. En suite en js :

texte=file('http://localhost/football2/sallesDesMachines/synchro.inc.php?NumeroRencontre='+escape(numero));
console.log(texte);
myJsonObj = JSON.parse(texte);

Console.log :

"[{"date":"2008-09-28","Stade":null,"Terrain":null,"Lieu":"AVENUE DE PARIS","Ville":"79260 LA CRECHE","SaisieDistance":"13","equipelocalesaisie":"La Cr\u00e8che 2","equipevisiteusesaisie":"St Maxire AV S 2","competition":"4\u00c8ME DIVISION","choix_journee":"","choix_poste":"Arbitre centre","NomArbitre":null,"NomAssistant1":null,"NomAssistant2":null,"ArbitreRemplacant":null,"NomDeleguePrincipal":null,"NomDelegueAjoint":null,"NomDelegueAccompagnateur":null,"ObservateurPrincipal":null,"ObservateurAdjoint1":null,"ObservateurAdjoint2":null}]"
myJsonObj = JSON.parse(texte); 

donne une parse error.

On peut remarqué que dans le console.log, le tableau commence par ". Ce qui provoque l'erreur.

Quand je fais un tableau à la main comme ceci :

texte = '[{"date":"2008-09-28","Stade":null,"Terrain":null,"Lieu":"AVENUE DE PARIS","Ville":"79260 LA CRECHE","SaisieDistance":"13","equipelocalesaisie":"La Cr\u00e8che 2","equipevisiteusesaisie":"St Maxire AV S 2","competition":"4\u00c8ME DIVISION","choix_journee":"","choix_poste":"Arbitre centre","NomArbitre":null,"NomAssistant1":null,"NomAssistant2":null,"ArbitreRemplacant":null,"NomDeleguePrincipal":null,"NomDelegueAjoint":null,"NomDelegueAccompagnateur":null,"ObservateurPrincipal":null,"ObservateurAdjoint1":null,"ObservateurAdjoint2":null}]';

avec

myJsonObj = JSON.parse(texte);
alert(myJsonObj[0].equipelocalesaisie);//me retroune bien La Crèche 2  

Il n'y a aucun problème de fichier tous sont bien configuré pour le utf8

Quelqu'un aurait-il une idée?

lundi 21 octobre 2013 (Dernière édition lundi 21 octobre 2013)

SiMax Messages : 7572

Salut !

Le problème vient peut être de ta fonction file(), peux-tu la copier ici ?

lundi 21 octobre 2013

ledisciple Messages : 2

Non le problème venait d'une déclaration non faite. Il faut préciser le header dans le fichie php


header('Content-type: application/json');
$filename = "../sallesDesMachines/plan.inc.php";if (file_exists($filename)) include($filename);if(isset($_GET["NumeroRencontre"])){ $NumeroRencontre =trim(strip_tags(htmlentities($_GET["NumeroRencontre"]))); if(ctype_digit($NumeroRencontre) && strlen($NumeroRencontre)==8){ $ChercheRencontreParNumero->execute(array($NumeroRencontre)); $ligne = $ChercheRencontreParNumero->fetchAll(PDO::FETCH_ASSOC); $NombreDeLignes=count($ligne); var_dump($ligne); if(!empty($ligne)){ echo json_encode($ligne); } }}
mardi 22 octobre 2013

Répondre Pour répondre, tu dois d'abord t'inscrire rapidement sur Kommunauty. Rejoins-nous vite !