Vous avez raison d'utiliser les chaînes de caractères comme la clé. Voici un extrait de la RFC 4627 - L'application/json Type de support de JSON (JavaScript Object Notation)
2.2. Les objets
Une structure de l'objet est représenté par une paire d'accolades
entourant zéro, une ou plusieurs paires nom/valeur (ou les membres). Un nom est une
chaîne de caractères. Un seul colon vient après chaque nom, en séparant le nom
à partir de la valeur. Une virgule sépare une valeur à partir d'une suite de
nom. Les noms à l'intérieur d'un objet DOIT être unique.
object = begin-object [ member *( value-separator member ) ]
end-object
member = string name-separator value
[...]
2.5. Les chaînes
La représentation des chaînes de caractères est similaire pour les conventions utilisées dans le C
la famille des langages de programmation. Une chaîne de caractères commence et se termine avec
les guillemets. [...]
string = quotation-mark *char quotation-mark
quotation-mark = %x22 ; "
Lire l'ensemble de la RFC ici