Page 1 sur 1
trouver une valeur avec json_decode multidimensionnel
Posté : 25 sept. 2014, 13:03
par eckri
Bonjour
(php5, json_decode, mysql)
dans une base de donnees mySql champ text j'ai ces valeurs
Code : Tout sélectionner
a:2:{
i:0;
O:8:"stdClass":8:{
s:25:"variant_characteristic_id";
s:1:"2";
s:18:"variant_product_id";
s:3:"516";
s:8:"ordering";
s:1:"0";
s:17:"characteristic_id";
s:1:"2";
s:24:"characteristic_parent_id";
s:1:"3";
s:20:"characteristic_value";
s:6:"13.7 m";
s:20:"characteristic_alias";
s:0:"";
s:23:"characteristic_ordering";
s:1:"0";
}
s:10:"7m / 13.7m";
s:6:"13.7 m";
}
je n'arrive pas avec json_decode a recuperer la characteristic_value = 13.7 m
merci pour l'aide
Re: trouver une valeur avec json_decode multidimensionnel
Posté : 25 sept. 2014, 14:18
par arnaud69
C'est exactement ce qu'il y a dans ton champ de table mysql ou tu as mis en forme ?
Re: trouver une valeur avec json_decode multidimensionnel
Posté : 25 sept. 2014, 14:20
par arnaud69
Parce que en fait, ton json est pas valide en terme de formatage donc json_decode ne peut rien faire
Re: trouver une valeur avec json_decode multidimensionnel
Posté : 25 sept. 2014, 14:21
par eckri
non c'est comme ca mais sans retour a la ligne
Code : Tout sélectionner
a:2:{i:0;O:8:"stdClass":8:{s:25:"variant_characteristic_id";s:1:"2";s:18:"variant_product_id";s:3:"516";s:8:"ordering";s:1:"0";s:17:"characteristic_id";s:1:"2";s:24:"characteristic_parent_id";s:1:"3";s:20:"characteristic_value";s:6:"13.7 m";s:20:"characteristic_alias";s:0:"";s:23:"characteristic_ordering";s:1:"0";}s:10:"7m / 13.7m";s:6:"13.7 m";}
je trouve le formatage bizarre pour du json
nos posts se sont croise
Re: trouver une valeur avec json_decode multidimensionnel
Posté : 25 sept. 2014, 14:24
par arnaud69
Un test vite fait ici :
http://json.parser.online.fr/
Erreur sur le a... Faudrait voir ce qui le génère...
Re: trouver une valeur avec json_decode multidimensionnel
Posté : 25 sept. 2014, 14:26
par eckri
c'est dans une table joomla , ca doit etre encore du fait maison
merci pour ton aide
Re: trouver une valeur avec json_decode multidimensionnel
Posté : 25 sept. 2014, 14:37
par moogli
salut,
c'est parce que ce n'est pas du json.
c'est un objet "sérialisé".
La
sérialisation est un procédé courant pour la persistance d'information complexe.
ton problème ce règle simplement (j'ai découpé en plusieurs étape pour faire simple)
<?php
$x = 'a:2:{
i:0;
O:8:"stdClass":8:{
s:25:"variant_characteristic_id";
s:1:"2";
s:18:"variant_product_id";
s:3:"516";
s:8:"ordering";
s:1:"0";
s:17:"characteristic_id";
s:1:"2";
s:24:"characteristic_parent_id";
s:1:"3";
s:20:"characteristic_value";
s:6:"13.7 m";
s:20:"characteristic_alias";
s:0:"";
s:23:"characteristic_ordering";
s:1:"0";
}
s:10:"7m / 13.7m";
s:6:"13.7 m";
}';
$a = preg_replace('/\n\s{0,}/','',$x);
echo $a.PHP_EOL.PHP_EOL;
$xx = unserialize($a);
var_dump($xx);
si les sauts de lignes, espaces du formatage ne sont pas en base seule l'utilisation de
unserialize est utile
@+
Re: trouver une valeur avec json_decode multidimensionnel
Posté : 25 sept. 2014, 16:01
par eckri
ha ! super
$s = unserialize ($s_text);
$s_result = $s[0]->characteristic_value;
merci beaucoup !!
Re: trouver une valeur avec json_decode multidimensionnel
Posté : 25 sept. 2014, 22:12
par moogli
Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert "Mettre le sujet en tant que Résolu" situé en haut de la page à côté du titre du sujet.
Re: [RESOLU] trouver une valeur avec json_decode multidimen
Posté : 25 sept. 2014, 22:15
par eckri
merci