2009-04-19 4 views
0

C'est une question embarrassante à poser, car il s'agit principalement de mon manque de connaissances Javascript. Il semble que ce soit "si évident" que personne ne le spécifie plus. Je dois commencer quelque part! Je suis un codeur compétent dans d'autres langues, je ne suis pas familier avec JS.Le dictionnaire des options de personnalisation ReCaptcha est-il un JSON?

Sur le ReCaptcha Client API docs page, il y a un exemple du bon format pour le dictionnaire des options de personnalisation.

J'écris une application tierce qui génère ce dictionnaire basé sur les préférences de l'utilisateur. Je ne connais pas/ne pouvais pas trouver un type de dictionnaire en Javascript. Ma meilleure supposition est que le dictionnaire est JSON. Je veux m'assurer que ma sortie est valide et conforme à ce qu'ils attendent, particulièrement en ce qui concerne les citations (du tout? Single? Double? Etc.)

Est-ce JSON? Est-ce un autre type de dictionnaire? Quelqu'un peut-il me pointer à une sorte de spécifications pour la façon dont une instance valide d'un dictionnaire JS ressemble? La recherche de "Javascript Dictionary" s'est avérée inefficace en raison de la qualité générique des termes recherchés.

Merci!

Répondre

1

C'est un javascript object literal, qui est presque le même que JSON (c'est un sur-ensemble). Toute JSON valide fonctionnera ici, mais comme vous pouvez le voir dans cet exemple, Javascript quelques autres options:

<script> 
var RecaptchaOptions = { 
    theme : 'white', 
    tabindex : 2 
}; 
</script> 

La partie entre les accolades est Javascript valide, mais pas valide JSON parce theme, tabindex et white devrait tous être double-cité. Ci-dessous est JSON valide intégré dans Javascript, qui fonctionne parfaitement:

<script> 
var RecaptchaOptions = { 
    "theme" : "white", 
    "tabindex" : 2 
}; 
</script> 
0

Non, ce n'est pas JSON, c'est JavaScript. Plus exact: C'est un objet simple déclaré en utilisant la syntaxe d'initialisation de l'objet { … }.

Cette syntaxe est similaire à JSON car JSON est un sous-ensemble de JavaScript. Mais JSON requiert que les noms de propriété soient une chaîne entre guillemets, JavaScript non.