2017-04-04 17 views
0

나머지 API를 사용하고 있으며 C++의 cJSON 라이브러리를 사용하고 있습니다. 내가 뭔가 내 몸 요청을 변경해야 이제cJSON - JSON 구문 분석

cJSON *root; 

root = cJSON_CreateObject(); 

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

:

내가 (지금의 일)이 같은이 JSON을받을 내 몸 요청 예를

내 C++ 프로그램에서
{ 
    "userEmail": "[email protected]", 
    "userPassword": "12345678" 
} 

입니다 이렇게 :

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

참고 : json '섹션'과 같은 배열이 아닙니다. cJSON 라이브러리를 사용하여 "userInfo"(메일 및 암호) 내에 내용을 가져 오는 솔루션을 찾지 못했습니다. 나 좀 도와 줄 수있어?

덕분에 많은

+0

나는 "현대 C에서 JSON ++"에 대한 https://github.com/nlohmann/json을 운영자 추천합니다. 헤더 만 사용하기 쉽고 개발이 매우 활발합니다. –

답변

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

안녕하세요. 코멘트 주셔서 감사합니다. 그것은 나를 돕는다. 그러나 나는 한 가지를 쓰는 것을 잊어 버린다. 나는 2 개의 문자열 인 userEmail과 userPassword를받는 함수를 가지고있다. 그래서 함수는 어떤 매개 변수를 받아야 하는가? 왜냐하면 지금 몸은 이메일과 패스워드가 아니기 때문입니다. 그것은 사용자 정보입니다 ... – Pik93

+0

당신은 객체를 파싱하는 방법을 의미하지 않는다면 당신은 동일한 매개 변수를 사용할 수 있어야합니다,'userInfo'는 단지 래퍼 객체입니다. 안에 값을 가져 가야합니까? – sharyex

+0

내 함수는 전자 메일과 암호를 받아서 값을 파싱하고 표시 할 수 있지만 .. 이제는 userInfo가 작동하지 않고 내 요청 본문이 null이 됨 – Pik93