0
我在Visual Studio 2015 Professional中使用Casablanca,cpprestsdk在C++中使用REST API。我正在嘗試開發一個簡單的示例,這裏命中一個API並將響應解析爲JSON。我使用的URL實際上會返回發送給API的所有參數。無法從卡薩布蘭卡,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";
}
});