Bonjour,
J'ai un problème de logique. J'ai un JSON qui est alimenté par une boucle:
Je voudrai ajouter dans "phones" un item "hardwares" qui serait lui aussi un array avec une liste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 var json = {}; _.each(JSON.parse(res['rows']), function(row) { if (!(row.id in catalog)) { json[row.sid] = { id: row.id, name: row.name, phones: [] }; } json[row.id].phones.push({ mobile: "xxxxx", home: "xxxxx", work: "xxxxx" }); }); console.dir(json);
En gros le json final devrait donner:
Mais je n'y arrive pas. Je n'ai pas eu de soucis pour "phones", mais je n'y arrive plus lorsqu’il faut ajouter imbriquer un array supplémentaire dans l'objet du même id.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 "1": { "id": 1, "name": "lola", "phones": [{ "mobile": "xxx", "home": "xxx", "work": "xxx", "hardwares": [{ "provider": "samsung", "model": "galaxy S5" }, { "provider": "apple", "model": "iphone 6" }] }] }
J'ai essayé:
Mais ça ne marche pas. Il m'ajoute bien les x hardwares dans l'array, mais il me recrée un autre objet dans phones identique sauf que dans le second objet hardwares est vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 var json = {}; _.each(JSON.parse(res['rows']), function(row) { if (!(row.id in catalog)) { json[row.sid] = { id: row.id, name: row.name, phones: [] }; } json[row.id].phones.push({ mobile: "xxxxx", home: "xxxxx", work: "xxxxx", "hardwares": [] }); json[row.id].phones[0].hardwares.push({ provider: row.provider, model: row.model, }); }); console.dir(json);
Donc le premier objet phones est OK, mais le second ne devrait pas exister.
J'ai vraiment un problème de logique. Si vous avez une solution, je suis preneur.
Partager