Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme d'analyse d'un objet JSON

2 réponses
Avatar
Roger (Bordeaux)
Bonjour,

Vous trouverez ci-dessous un fichier exemple pour mon problème.

L'objet JSON, défini ici en dur, est issu d'un script PHP qui extrait
les données d'une base MySQL. Le problème reste le même.

La structure est multidimensionnelle. L'objet "semaines" comprend une
série d'objet définis par numéro de la semaine et date du lundi.

Je cherche a faire une boucle permettant de me donner le nr de la
semaine et la date. Hors le alert(typeof(b)) répond 'string' au lieu
d'objet ??? et je ne peux donc pas accéder à la date.

Qu'est ce qui ne va pas ??

Merci d'avance pour vos réponses.

Roger


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;
charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
<script type="text/javascript">

Object.display = function(object) {
resp = '';
for (property in object) {
resp += property + ' : ' + object[property]+"<br/>";
}
return resp;
}

var jsonObject =
{"2":{"prenomPersonne":"Xavier","semaines":{"01":{"date":"2006-01-02"},"02":{"date":"2006-01-09"}}}};

for (a in jsonObject) {

alert(Object.display(jsonObject[a].semaines));

for (b in jsonObject[a].semaines) {
alert(typeof(b));
}
}

</script>
</head>
<body>

</body>
</html>

2 réponses

Avatar
Laurent vilday
Vous trouverez ci-dessous un fichier exemple pour mon problème.
La structure est multidimensionnelle. L'objet "semaines" comprend une
série d'objet définis par numéro de la semaine et date du lundi.

Je cherche a faire une boucle permettant de me donner le nr de la
semaine et la date. Hors le alert(typeof(b)) répond 'string' au lieu
d'objet ??? et je ne peux donc pas accéder à la date.

Qu'est ce qui ne va pas ??


dans : for (b in jsonObject[a].semaines)
b obtient alors (selon l'exemple), les valeur : '01' puis '02' qui sont
des string. Tu fais typeof(b) qui te donnes string, c'est normal.
Tu veux certainement typeof(jsonObject[a].semaines[b]) pour pouvoir
ensuite accéder à jsonObject[a].semaines[b].date.
Les détails ci-dessous.


Object.display = function(object) {
Toucher à Object c'est imo potentiellement dangereux, mais soit.


resp = '';
*var* respo = '';


for (property in object) {
for (*var* property in object) {


resp += property + ' : ' + object[property]+"<br/>";
}
return resp;
}

var jsonObject =
{"2":{"prenomPersonne":"Xavier","semaines":{"01":{"date":"2006-01-02"},"02":{"date":"2006-01-09"}}}};


for (a in jsonObject) {
for (*var* a in jsonObject) {


alert(Object.display(jsonObject[a].semaines));

for (b in jsonObject[a].semaines) {
for (*var* b in jsonObject[a].semaines) {

alert(typeof(b));
alert(typeof jsonObject[a].semaines[b]);


}
}


--
laurent

Avatar
Roger (Bordeaux)

Vous trouverez ci-dessous un fichier exemple pour mon problème.
La structure est multidimensionnelle. L'objet "semaines" comprend une
série d'objet définis par numéro de la semaine et date du lundi.

Je cherche a faire une boucle permettant de me donner le nr de la
semaine et la date. Hors le alert(typeof(b)) répond 'string' au lieu
d'objet ??? et je ne peux donc pas accéder à la date.

Qu'est ce qui ne va pas ??



dans : for (b in jsonObject[a].semaines)
b obtient alors (selon l'exemple), les valeur : '01' puis '02' qui sont
des string. Tu fais typeof(b) qui te donnes string, c'est normal.
Tu veux certainement typeof(jsonObject[a].semaines[b]) pour pouvoir
ensuite accéder à jsonObject[a].semaines[b].date.
Les détails ci-dessous.


Object.display = function(object) {


Toucher à Object c'est imo potentiellement dangereux, mais soit.

resp = '';


*var* respo = '';

for (property in object) {


for (*var* property in object) {

resp += property + ' : ' + object[property]+"<br/>";
}
return resp;
}

var jsonObject =
{"2":{"prenomPersonne":"Xavier","semaines":{"01":{"date":"2006-01-02"},"02":{"date":"2006-01-09"}}}};


for (a in jsonObject) {


for (*var* a in jsonObject) {

alert(Object.display(jsonObject[a].semaines));

for (b in jsonObject[a].semaines) {


for (*var* b in jsonObject[a].semaines) {

alert(typeof(b));


alert(typeof jsonObject[a].semaines[b]);

}
}



Merci pour ta réponse, j'ai en effet pu avancer dans ce sens.


A+

Roger