Я использую Casablanca, cpprestsdk, чтобы использовать API REST на C++ в Visual Studio 2015 Professional. Я пытаюсь разработать простой пример, нажимая на API и анализируя ответ как JSON. Используемый мной URL-адрес фактически возвращает все параметры, отправленные в API.Невозможно получить значения от JSON в Касабланке, C++
Я ударил 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";
}
});