2012-10-24 4 views
0

Je tire un objet json, c'est le résultat d'une sortie $.parseJSON. Je comprends qu'il a besoin d'un gestionnaire pour l'aider, mais pas sûr de ce qui appartient à l'assistant. En lisant les questions des autres utilisateurs, ils semblent pouvoir sauter dans le prochain cercle en raison d'une clé constante, malheureusement dans mon cas c'est toujours différent.Looping json object key => tableau


Json sortie

[ 
{ 
    "High blood pressure?": [ 
     "no", 
     "string" 
    ] 
}, 
{ 
    "Cancer?": [ 
     "no", 
     "string" 
    ] 
}, 
{ 
    "Asthma or a breathing disorder?": [ 
     "no", 
     "string" 
    ] 
} 
] 

boucle


{{#each screen_data}} 
<tr> 
    <td class="bold">{{this}}</td> 
</tr> 
{{/each}} 

résultats dans [Object object][Object object][Object object]......

+1

Voir http://stackoverflow.com/questions/5113847/accessing-elements-of-json-object-without-knowing-the-key-names – Radu

+0

Espérait éviter quelque chose comme ça, j'espère que le guidon a quelque chose de intégré qui peut gérer la fonctionnalité de sorte que tout reste propre – Bankzilla

+0

Idéalement y Vous devriez utiliser une représentation de données auto-descriptive (et d'intégrité supérieure) plus cohérente, mais si vous allez suivre cette route avec un guidon, vous devriez probablement créer un assistant. –

Répondre

0

C'est parce que vous avez un tableau d'objets, et c'est ce que vous racontez votre modèle pour écrire .. l'objet . Il semble que vous voulez écrire la seule propriété sur la racine de l'objet, ce qui est une question.

essayez ceci:

{{#each screen_data}} 
<tr> 
    <td class="bold">{{this[0]}}</td> 
</tr> 
{{/each}} 

C'est une structure JSON étrange que vous avez là, je dois dire. Généralement, il est considéré comme une mauvaise forme d'utiliser le nom de la propriété de l'objet en tant que support de données de ce type.

EDIT: Je vous recommande de changer cette structure à quelque chose qui représente mieux vos données ... comme ceci:

[{ 
    question: "High blood pressure?", 
    answers: [ 
     "no", 
     "string" 
    ] 
}, 
{ 
    questions: "Cancer?", 
    answers: [ 
     "no", 
     "string" 
    ] 
}, 
{ 
    question: "Asthma or a breathing disorder?", 
    answers: [ 
     "no", 
     "string" 
    ] 
}] 

Ce qui signifierait alors votre modèle ressemblerait à ceci:

{{#each screen_data}} 
<tr> 
    <td class="bold">{{this.question}}</td> 
</tr> 
{{/each}} 
+0

Le 'this [0]' ne fonctionne pas il jette un tantinet. J'ai fini par changer ma structure pour quelque chose de proche du vôtre, y compris les touches de la section des réponses vu que vous ne pouvez pas faire référence à la structure du tableau, donc j'ai dû avoir une autre façon de référencer les valeurs. – Bankzilla

0

Vous pouvez essayer ce violon ci-dessous. Il vous donnera toutes les clés à partir des données JSON

http://jsfiddle.net/tariqulazam/SjugS/

var data= [ 
{ 
    "High blood pressure?": [ 
     "no", 
     "string" 
    ] 
}, 
{ 
    "Cancer?": [ 
     "no", 
     "string" 
    ] 
}, 
{ 
    "Asthma or a breathing disorder?": [ 
     "no", 
     "string" 
    ] 
} 
]; 

for (var key in data) { 
     for (var item in data[key]) {  
      alert(item); 
     } 
}