Ich kann keinen Wert von einem JSON-Objekt abrufen, wenn die Zeichenfolge ein Bindestrichzeichen enthält:
{
"profile-id":1234, "user_id":6789
}
Wenn ich versuche , das zu referenzieren analysiert jsonObj.profile-id
es gibt ReferenceError: "id" is not defined
aber jsonObj.user_id wird 6789 zurückgeben
Ich habe keine Möglichkeit, die vom externen API-Aufruf zurückgegebenen Werte zu ändern, und der Versuch, die zurückgegebene Zeichenfolge zu analysieren, um Bindestriche zu entfernen, ruiniert auch URLs usw., die ebenfalls übergeben werden. Hilfe?
javascript
json
user1902467
quelle
quelle
Utilities.jsonParse
sagt nicht viel.Antworten:
jsonObj.profile-id
ist ein Subtraktionsausdruck (dhjsonObj.profile - id
).Verwenden Sie Klammern, um auf einen Schlüssel zuzugreifen, der Zeichen enthält, die nicht in einem Bezeichner enthalten sein können:
quelle
document.getElementById("someId").style["box-shadow"]="2px 2px 2px #616161";
funktioniert super!style.boxShadow
stattdessen verwenden. Dasstyle
Objekt konvertiert Bindestriche in camelCase.Beachten Sie zusätzlich zu dieser Antwort , dass in Node.js, wenn Sie mit der Array-Syntax auf JSON zugreifen,
[]
alle verschachtelten JSON-Schlüssel dieser Syntax folgen solltenDas ist der falsche Weg
und wird Ihnen den 'undefinierten' Fehler geben.
Dies ist der richtige Weg
quelle
Für Ansible und mit Bindestrich funktionierte dies für mich:
quelle