【发布时间】:2023-03-21 18:57:01
【问题描述】:
我在 Visual Studio 2015 Professional 中使用 Casablanca、cpprestsdk 在 C++ 中使用 REST API。我正在尝试在这里开发一个简单的示例,点击 API 并将响应解析为 JSON。我使用的 URL,实际上返回了所有发送到 API 的参数。
我已经点击了 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";
}
});
【问题讨论】:
标签: c++ json visual-studio visual-c++ casablanca