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']
