2010-09-26 6 views
0

Je travaille sur un projet qui nécessite un objet pour avoir plusieurs valeurs. Par exemple, une liste de «choses» toutes avec un nom mais chaque chose a aussi une autre catégorie, «Tags» avec peut inclure des choses comme rond, cercle, balle, sport, etc. tous les mots décrivant ce qu'est la «chose». J'essaye de définir ceci dans JSON mais je continue à courir dans des erreurs avec jsonlint. Jetez un oeil:JSON Liste des Tags/Valeurs

{ 
"things":[{ 
    "name":"thing1", 
    "tags":[{"globe","circle","round","world"}] 
}, 
{ 
    "name":"thing2", 
    "tags":[{"cloud","weather","lightning","sky"}] 
}, 
{ 
    "name":"thing3", 
    "tags":[{"round","bullseye","target"}] 
}, 
{ 
    "name":"thing4", 
    "tags":[{"round","key","lock"}] 
}, 
{ 
    "name":"thing5", 
    "tags":[{"weather","sun","sky","summer"}] 
}] 

}

Espérons que vous voyez ce que je suis en train d'accomplir.

Merci pour votre aide!

Anthony

Répondre

3

Vos objets "tags" me semblent off. Le code:

[{"globe","circle","round","world"}] 

essaierait de créer un tableau d'un objet dont les propriétés n'ont pas de valeurs, mais je ne suis pas sûr que ce même syntaxe valide. Voulez-vous un tableau de mots pour "tags"? Si oui, vous devez laisser tomber ces accolades:

var myThings = { 
    "things":[{ 
     "name":"thing1", 
     "tags":["globe","circle","round","world"] 
    }] 
}; 

qui vous donne un objet à la propriété « choses » qui contient un tableau d'un objet avec un « nom » et une propriété « tags », où " tags "est un tableau de mots.

Vous pouvez accéder à des « tags » comme ceci:

var thing1tag2 = myThings.things[0].tags[1]; // = "circle" 
+1

Oui, retirez les accolades des étiquettes. –

1

Si chaque chose a un nom alors pourquoi ne pas utiliser ce nom comme une balise comme suit: Maintenant

var things = { 
    "thing1": ["globe", "circle", "round", "world"], 
    "thing2": ["cloud", "weather", "lightning", "sky"], 
    "thing3": ["round", "bullseye", "target"], 
    "thing4": ["round", "key", "lock"], 
    "thing5", ["weather", "sun", "sky", "summer"] 
}; 

vous pouvez consulter things.thing1 ou things.thing2 et les étiquettes comme things.thing1[0] et things.thing2[2] etc.

Questions connexes