Visual Studio 2015 Professional에서 C++의 REST API를 사용하기 위해 Casablanca, cpprestsdk를 사용하고 있습니다. 여기 API와 JSON으로 응답을 파싱하는 간단한 예제를 개발하려고합니다. 사용중인 URL은 실제로 API에 전송 된 모든 매개 변수를 반환합니다.Casablanca, C++의 JSON에서 값을 가져올 수 없습니다.
나는 API를 치고 응답을 얻었으므로 응답에서 json을 성공적으로 추출했다. 그러나 json에서 키의 값을 읽으려고 할 때 충돌이 발생합니다. 그러므로 나는 그 열쇠가 유효한지 아닌지를 확인하고, 항상 json이 필드를 가지고 있지 않다고 말한다. 예를 들어 데이터 즉 json을 인쇄했습니다. 그것은 키/필드 "이름"이 있지만 has_field
통해 확인하면 false를 반환합니다.
도와주세요.
전체 코드는 다음과 같습니다 :
json::value postData;
postData[L"name"] = json::value::string(L"Joe Smith");
postData[L"sport"] = json::value::string(L"Baseball");
http_client client(L"https://httpbin.org/post);
http_request request(methods::POST);
request.set_body(postData);
client.request(request).then([](web::http::http_response response) {
json::value j = response.extract_json().get();
json::value data = j.at(U("data"));
std::wcout << "Json : " << data;
// Prints "{\"name\":\"Joe Smith\",\"sport\":\"Baseball\"}"
if (data.has_field(U("name"))) {
std::cout << "Name Found";
}
else {
std::cout << "Name key not Found";
}
});