Encoder en Json un tableau array multidimensionnel [Résolu]

sagat06 166 Messages postés mercredi 27 juin 2007Date d'inscription 31 mars 2014 Dernière intervention - 21 avril 2008 à 15:54 - Dernière réponse : sagat06 166 Messages postés mercredi 27 juin 2007Date d'inscription 31 mars 2014 Dernière intervention
- 22 avril 2008 à 23:26
Bonjour à tous,
comme le titre de ce post le laisse suggérer, je cherche à encoder en Json un tableau multidimensionnel.

Je ne connais Json que depuis quelques minutes (pardonnez mon ignorance...) mais il semblerait bien que ce soit l'une des solutions d'un de mes nombreux problèmes.
J'aimerais donc savoir s'il serait possible d'obtenir quelques exemples ou tutoriel sur l'utilisation de Json (un exemple sur l'encodage d'un tableau multidimensionnel me conviendrait   )

Pour l'instant une bref recherche sur le net me montre beaucoup d'exemple d'encodage Json à partir de php, cela me sera biensûr necessaire mais dans un second temps seulement.

En vous remerciant d'avance, à bientôt.
PS: bultez encore une fois dans les startings-blocks ??

Signé Sagat
Afficher la suite 

7 réponses

Répondre au sujet
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 21 avril 2008 à 17:49
+3
Utile
Bonjour,
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, encoder les tableaux javascript an Json me
permettrait de les rendre lisible par php, donc de pouvoir les enregistrer sur
une base de
données.</td>
</td></tr></tbody></table>pourquoi
ne pas transmettre une chaine encodée et à la récupération remettre la chaine
sous forme de tableau
//-- avant envoi
var Chaine =
Tableau.join('$$');
//--a reception
var Tableau = Chaine.split('$$');
;O)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PetoleTeam
sagat06 166 Messages postés mercredi 27 juin 2007Date d'inscription 31 mars 2014 Dernière intervention - 21 avril 2008 à 17:52
+3
Utile
Re.
Je crois avoir un peu avancé: j'ai fabriqué un petit exemple dont j'espère avoir quelques un de vos avis.
=>
<html><head> </head>


<script type="Text/JavaScript">


var tab=[  [8,9,10],[1,3,7,14],[99,2] ];


   //  cela semble être la manière d'encoder un tableau multidimensionnel en JSON

function changer(){
 
alert(tab[2][0]);  // donne à raison 99
}


var tabo="[1,3,7,14]";
var taboval=eval('('+tabo+')');


         // eval()  permet le décodage par javascript du tableau encodé en Json

function changer2(){
 alert(taboval[2]);   // donne à raison  7
}


var tabo2="[  [8,9,10],[1,3,7,14],[99,2] ]";
var taboval2=eval('('+tabo2+')');


function changer3(){
 alert(taboval2[1][3]);  // donne à raison 14
}


</script>



</html>

Voilà les 2 sites qui m'ont aidé à aprréhender Json:
=> http://www.json.org/json-fr.html
=>http://blog.pascal-martin.fr/post/JSON-JavaScript-Object-Notation-Presentation

Cela ressemble beaucoup à du javascript mais n'en est pas. Théoriquement, PHP est désormais capable de lire en décodant le format Json le tableau multidimensionnel. Ce qu'il ne peut faire sans.
L'idée principal de JSON étant de sérialiser les données => ça devient une chaine de caractère lisible par de nombreux langages de programmation.

Voilà, j'attends vos avis et correctifs.
Merci d'avance.

Signé Sagat
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de sagat06
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 21 avril 2008 à 19:16
+3
Utile
<table bgcolor="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">

----,

ou l'art de rien faire en mettant la pression
aux autres

</td>

</td>
</tr>
</tbody>
</table>à
l'occasion mets la aux pneus de ma voiture...


Le tableau ci dessous
var tab=[ [8,9,10],[1,3,7,14],[99,2]];
signifie
simplement
tab[0] =
[8,9,10];   // tab[0] est un tableau avec 3
elements
tab[1] = [1,3,7,14]; // tab[1]
est un tableau avec 4 elements
etc...
Si je réalise

var szTmp =
tab.join('$');
j'obtiens
8,9,10$,1,3,7,14$99,2;
Si je réalise
tab = szTmp.split('$');
j'obtiens un tableau qui donne
8,9,10,1,3,7,14,99,2
et si je fais
alert( tab[1]);
j'obtiens

1,3,7,14
Le compte
est bon...
;O)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PetoleTeam
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 21 avril 2008 à 16:41
0
Utile
Bonjour,

>>mais il semblerait bien que ce soit l'une des solutions d'un de mes nombreux problèmes
    certes... mais c'est lequel de problème ?
    et qu'appelles-tu encoder ? pourquoi faire ?

<hr />                Cordialement            Bul        
Commenter la réponse de cs_bultez
sagat06 166 Messages postés mercredi 27 juin 2007Date d'inscription 31 mars 2014 Dernière intervention - 21 avril 2008 à 17:02
0
Utile
Bonjour bultez,
toujours aussi réactif et merci de t'intéresser à mon soucis.

Voici quelques précisions qui seront peut être utile:

j'ai réalisé un projet en javascript dans l'esprit Web 2.0 (désolé pour l'effet de mode) via un jeu de frames. L'utilisateur du site intéragit dynamiquement avec le site est chacune de ses actions sont enregistrées dans des tableaux, certains multidimensionnels. (Action sur frame gauche = réaction sur frame droite).
Le tout fonctionne.

Mon soucis est désormais d'enregistrer ces mêmes actions afin que l'utilisateur du site puisse y revenir quand il le désire, afin d'y apporter des modifications ou autres. En effet, ayant tout réalisé sous javascript, l'utilisateur quittant le site perdra tout est devra tout recommencer à sa prochaine connexion.

J'avais à la base pour idée, au tout début du développement du projet, de transformer les tableaux javascript en tableau php et d'ainsi pouvoir tout simplement les enregistrer sur une base de donnée. Une simple conversion dans le sens inverse (php vers javascript) me permettrait théoriquement d'avoir mes tableaux array initialisés dès le début avec les valeurs sauvegardées: par ce biais, l'utilisateur retrouve tel qu'il l'avait laissé son travail.

En cherchant sur le net, encoder les tableaux javascript an Json me permettrait de les rendre lisible par php, donc de pouvoir les enregistrer sur une base de données.
Cependant, ne connaissant rien à JSON, j'appelle à l'aide sur ce site...

Voilà, j'espère avoir situé ma pensée.
Je demande en fait juste un tutoriel ou exemple d'un encodage en Json d'un tableau multidimensionnel

En espérant que cela vous soit utile,
à bientôt.

Signé Sagat
Commenter la réponse de sagat06
sagat06 166 Messages postés mercredi 27 juin 2007Date d'inscription 31 mars 2014 Dernière intervention - 21 avril 2008 à 18:00
0
Utile
Merci PetoleTeam.

J'avais en effet pensé à cela, mais si ceci parait relativement simple pour des tableaux unidimensionnels, cela m'a semblé un peu plus compliqué lorsque l'on a affaire à des tableaux multidimensionnels avec des sous tableaux au nombre d'éléments différents.

Je ne savais pas trop comment "annoncer" la fin d'un sous tableau et le début du suivant. Il est vrai que je ne me suis pas trop casser la tête à chercher aussi, ayant de suite désirer comprendre le comment du fonctionnement de JSON, ça me semblait être ce qu'il me fallait.

Mais si tu as un exemple tout fait, je suis preneur  (ou l'art de rien faire en mettant la pression aux autres....)

Meci encore.

Signé Sagat
Commenter la réponse de sagat06
sagat06 166 Messages postés mercredi 27 juin 2007Date d'inscription 31 mars 2014 Dernière intervention - 22 avril 2008 à 23:26
0
Utile
Merci PetoleTeam,
t'as méthode est d'une logique.

J'aurai dû mettre mon cerveau en mode système D...

Bref, l'avantage principale avec Json semble être qu'il est directement compréhensible en javascript, ie: les tableaux sont normalement automatiquement générés et initialisés avec les valeurs sauvegardées.

Mais beaucoup diront que ce n'est que du chipotage.

Merci encore.

Signé Sagat
Commenter la réponse de sagat06

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.