2017-04-04 3 views
0

Je fais une API de repos et j'utilise la bibliothèque cJSON c en C++.cJSON - analyse syntaxique JSON

C'est ma demande corps exemple

{ 
    "userEmail": "[email protected]", 
    "userPassword": "12345678" 
} 

Dans mon programme C++ je reçois ce JSON comme celui-ci (son travail maintenant):

cJSON *root; 

root = cJSON_CreateObject(); 

cJSON_AddStringToObject(root, "userEmail", userEmail.c_str()); 
cJSON_AddStringToObject(root, "userPassword", userPassword.c_str()); 

Maintenant, je dois changer ma demande de corps à quelque chose comme ça:

{ 
    "userInfo":{ 
     "userEmail": "[email protected]", 
     "userPassword": "12345678" 
    } 
} 

Note: Ce n'est pas un tableau, c'est comme une 'section' de json. Je ne trouve aucune solution pour obtenir le contenu à l'intérieur de "userInfo" (courrier et mot de passe) en utilisant la bibliothèque cJSON. Pouvez-vous m'aider?

Merci beaucoup

+0

Je vous recommande https://github.com/nlohmann/json pour "JSON en C++ moderne". Il est seulement en-tête, facile à utiliser et le développement est très actif. –

Répondre

1
cJSON *root; 
cJSON *info; 

root = cJSON_CreateObject(); 

cJSON_AddItemToObject(root, "userInfo", info = cJSON_CreateObject()); 
cJSON_AddStringToObject(info, "userEmail", userEmail.c_str()); 
cJSON_AddStringToObject(info, "userPassword", userPassword.c_str()); 

cJSON Github Repository

+0

Bonjour. Merci pour le commentaire. Ça m'aide. Mais j'oublie d'écrire une chose. J'ai une fonction qui reçoit 2 chaîne, l'userEmail et userPassword .. alors maintenant quels paramètres la fonction doit recevoir? car maintenant le corps n'est pas seulement l'email et le mot de passe .. c'est l'info de l'utilisateur ... – Pik93

+0

Vous devriez pouvoir utiliser les mêmes paramètres, le 'userInfo' est juste un objet wrapper, sauf si vous voulez dire comment analyser l'objet et obtenir les valeurs à l'intérieur? – sharyex

+0

Ma fonction reçoit l'email et le mot de passe et je peux analyser des valeurs et montrer .. mais maintenant avec l'userInfo son ne fonctionne pas, mon corps de demande est nul – Pik93