2014-07-26 5 views
0

Je souhaite utiliser une chaîne en tant que propriété JSON dans JavaScript.Utilisation de la chaîne pour obtenir la propriété JSON

var knights = { 
     'phrases': 'Ni!' 
}; 

var x = 'phrases'; 

console.log(knights.x);   // Doesn't log "Ni!" 

Quand je lance ce code, il ne fonctionne évidemment pas parce qu'elle interprète « x » et non le contenu de la variable « x ».

Le code complet dans le contexte sur pastebin: http://pastebin.com/bMQJ9EDf

est-il une solution facile à cela?

+0

utilisez: chevaliers [x] – conceptdeluxe

+1

** Cela n'a rien à voir avec JSON ** –

Répondre

2

knights.x recherche une propriété nommée x. Vous voulez knights[x], ce qui équivaut à knights['phrases'] == knights.phrases.

code complet (fixation d'un couple de fautes de frappe dans votre exemple):

var knights = { 
     "phrases": "Ni!" 
}; 

var x = 'phrases'; 

console.log(knights[x]); // logs Ni! 
2

Essayez ceci pour accéder à l'aide de variables ayant la chaîne des valeurs

kinghts[x] 

En gros, cela est duper

kinghts[x]==knighted["phrases"]==knighted.phrases. 

knights.x va obtenir une clé nommée x, donc ça va revenir undefined ici.

2

knights.x est le même que knights['x'] - récupérer une propriété sous la x clé. Il n'accède pas à la variable x et se substitue à la valeur. Au lieu de cela, vous voulez knights[x] qui est l'équivalent de knights['phrases']

Questions connexes