Je ne parviens pas à récupérer une valeur à partir d'un objet json lorsque la chaîne a un caractère tiret:
{
"profile-id":1234, "user_id":6789
}
Si j'essaie de référencer l'analysé, jsonObj.profile-id
il retourne ReferenceError: "id" is not defined
mais jsonObj.user_id retournera 6789
Je n'ai pas de moyen de modifier les valeurs renvoyées par l'appel d'API externe et d'essayer d'analyser la chaîne retournée afin de supprimer les tirets ruinera les URL, etc., qui sont également transmises. Aidez-moi?
javascript
json
user1902467
la source
la source
Utilities.jsonParse
ne dit pas grand-chose.Réponses:
jsonObj.profile-id
est une expression de soustraction (iejsonObj.profile - id
).Pour accéder à une clé contenant des caractères qui ne peuvent pas apparaître dans un identifiant, utilisez des crochets:
la source
document.getElementById("someId").style["box-shadow"]="2px 2px 2px #616161";
fonctionne très bien!style.boxShadow
place. L'style
objet convertit les traits d'union en camelCase.En plus de cette réponse , notez que dans Node.js, si vous accédez à JSON avec la syntaxe de tableau,
[]
toutes les clés JSON imbriquées doivent suivre cette syntaxeC'est la mauvaise façon
et vous donnera l'erreur «indéfinie».
C'est la bonne manière
la source
Pour ansible, et en utilisant un trait d'union, cela a fonctionné pour moi:
la source