javascript - Kan inte komma åt JSON-egenskap med "-" bindestreck


Jag kan inte hämta ett värde från ett JSON-objekt när strängen har ett bindestreck:

{
"profile-id":1234, "user_id":6789
}

Om jag försöker referera till den analyserade jsonObj.profile-id returnerar det ReferenceError: "id" är inte definierad men jsonObj.user_id kommer att returnera 6789

Jag har inget sätt att ändra värdena som returneras av det externa API-anropet och att försöka parsa den returnerade strängen för att ta bort bindestreck kommer att förstöra URL:er osv. som skickas med. Hjälp?

Svar #1

jsonObj.profile-id är ett subtraktionuttryck (d.v.s. jsonObj.profile - id).

För att få åtkomst till en nyckel som innehåller tecken som inte kan förekomma i en identifierare, använd hakparenteser:

jsonObj["profile-id"]

Svar #2

Utöver detta svar, notera att i Node.js om du får tillgång till JSON med arraysyntaxen [] bör alla inbäddade JSON-nycklar följa den syntaxen

Det här är fel sätt

json.first.second.third['comment']

Och kommer att ge dig felet 'undefined'.

Det här är det rätta sättet

json['first']['second']['third']['comment'] 

Relaterade artiklar